Golang二进制转换十进制代码

一曲 · · 13370 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

Golang二进制转换十进制代码,使用 container/list 实现出入栈操作,完成转换。

二进制转十进制的方法是:从右到左的取数值乘以2的N次幂,依次相加,N为数值在二进制中的位数。

package main /**   二进制转换成十进制   核心:   入栈、出栈、类型转换   sum += int(v-48) * int(math.Pow(2, N)) **/ import (     "container/list"     "fmt"     "math" ) func main() {     stack := list.New()     var input string     var sum int     var stnum, conum float64 = 0, 2     fmt.Printf("请输入一段二进制数字:")     fmt.Scanf("%s", &input)     for _, c := range input {         // 入栈 type rune         stack.PushBack(c)     }     length := stack.Len()     fmt.Printf("栈的当前容量是 %d\n", length)     // 出栈     for e := 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 {     } }



有疑问加站长微信联系(非本文作者)

本文来自:开源中国博客

感谢作者:一曲

查看原文:Golang二进制转换十进制代码

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

13370 次点击  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传