Golang二进制转换十进制代码,使用 container/list 实现出入栈操作,完成转换。
二进制转十进制的方法是:从右到左的取数值乘以2的N次幂,依次相加,N为数值在二进制中的位数。
packagemain /** 二进制转换成十进制 核心: 入栈、出栈、类型转换 sum+=int(v-48)*int(math.Pow(2,N)) **/ import( "container/list" "fmt" "math" ) funcmain(){ stack:=list.New() varinputstring varsumint varstnum,conumfloat64=0,2 fmt.Printf("请输入一段二进制数字:") fmt.Scanf("%s",&input) for_,c:=rangeinput{ //入栈typerune stack.PushBack(c) } length:=stack.Len() fmt.Printf("栈的当前容量是%d\n",length) //出栈 fore:=stack.Back();e!=nil;e=e.Prev(){ //rune是int32的别名 v:=e.Value.(int32) sum+=int(v-48)*int(math.Pow(conum,stnum)) stnum++ } fmt.Printf("二进制转化为十进制结果是%d\n",sum) for{ } }