例子

  • 输入 binary_num = 1010111 => 十进制数 = 64+0+16+4+2+1 = 87

  • 输入 binary_num = 10101 => 十进制数 = 21

解决这个问题的方法

  • 第一步:定义一个接受二进制数的函数,binary_num,声明decimalNum = 0,index = 0

  • 第 2 步:开始 for 循环,直到 binary_num 变为 0。

  • 步骤 3:找到 binary_num 的余数并除以 10。

  • 步骤4:使用decimalNum和regression*pow(2, index)计算十进制数。

  • 第五步:返回decimalNum。

程序

package main
import (
   "fmt"
   "math"
)
func binaryToDecimal(num int) int {
   var remainder int
   index := 0
   decimalNum := 0
   for num != 0{
      remainder = num % 10
      num = num / 10
      decimalNum = decimalNum + remainder * int(math.Pow(2, float64(index)))
      index++
   }
   return decimalNum
}
func main(){
   fmt.Println(binaryToDecimal(1))
   fmt.Println(binaryToDecimal(10))
   fmt.Println(binaryToDecimal(101))
   fmt.Println(binaryToDecimal(101011))
}
输出结果
1
2
5
43