二进制转十进制

实践练习C++17

十进制使用 10 的幂作为位权,二进制则使用 2 的幂。从右往左,二进制各位的权重是 1、2、4、8,以此类推。

任务说明

根据进位制原理,将字符串表示的二进制数,例如 101010,转换为十进制。

给定二进制字符串,返回十进制结果,并处理无效输入。

注意

  • 自行实现转换,不要调用现成转换功能。

关于二进制

十进制以 10 为基数。

十进制的 23 可以理解为 10 的各次幂的线性组合:

  • 最右一位乘以 10^0 = 1。
  • 下一位乘以 10^1 = 10。
  • 依此类推。
  • 从右数第 n 位乘以 10^(n-1)。
  • 最后将这些值相加。

即:23 => 2*10^1 + 3*10^0 => 2*10 + 3*1 = 23。

二进制相同,只是把 10 的幂换成 2 的幂。

例如:101 => 1*2^2 + 0*2^1 + 1*2^0 => 4 + 0 + 1 => 5。