文档章节

Golang二进制转换十进制代码

一曲
 一曲
发布于 2015/06/05 13:47
字数 212
阅读 445
收藏 1

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 {
    }
}


© 著作权归作者所有

共有 人打赏支持
一曲
粉丝 11
博文 31
码字总数 9713
作品 0
深圳
高级程序员
私信 提问
[Java教程 06] 进制的转换

前言 在上一节的文章中我们讲解了进制的概述与不同进制的表现形式,我猜肯定还有很多人懵懵懂懂的。老铁,莫慌,这是正常现象,接着往下看,你会发现,进制这小子算个啥子咧! 其他进制到十进...

呆萌钟
2018/04/05
0
0
BCD码简介及其与十进制数字字符串之间的转换

大家都知道在计算机中,数据的常用编码格式有二进制、八进制、十进制和十六进制等,这些编码格式之间可以相互转换。在电力通信协议中,很多数据都是用BCD格式来编码的,这些数据需要转换为普...

zhouzxi
2017/06/01
0
0
arduino从零开始(14)认识二进制数

     arduino从零开始   你将学到什么   你将学到如何在arduino中使用二进制数      二进制   我们大多数人学习计数的时候都是基于十进制的,但是电脑(包括arduino)计数是基于...

Python与Arduino
2018/02/19
0
0
Java进制概述及进制间的相互转换

什么是进制? 进制也是进位制,是人们规定的一种进位方法。对于任何一种进制--X进制,就表示某一位置上的数运算时是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一...

深情不及酒伴
2017/11/28
0
0
PTA-基础编程题目集-7-4 BCD解密

BCD数是用一个字节来表达两位十进制的数,每四个比特表示一位。所以如果一个BCD数的十六进制是0x12,它表达的就是十进制的12。但是小明没学过BCD,把所有的BCD数都当作二进制数转换成十进制输...

niithub
2018/12/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

tac 与cat

tac从后往前看文件,结合grep使用

writeademo
30分钟前
2
0
表单中readonly和dsabled的区别

这两种写法都会使显示出来的文本框不能输入文字, 但disabled会使文本框变灰,而且通过通过表单提交时,获取不到文本框中的value值(如果有的话), 而readonly只是使文本框不能输入,外观没...

少年已不再年少
51分钟前
2
0
SpringBoot上传图片操作

首先有个上传文件的工具类 /** * 文件上传 * @param file * @param filePath * @param fileName * @throws Exception */public static void uploadFile(byte[] file, String ...

_liucui_
今天
6
0
DrawerLayout

public class MainActivity extends BaseActivity implements NavigationView.OnNavigationItemSelectedListener,OnFragmentInteractionListener{ public NavigationView navView; ......

安卓工程师王恒
今天
1
0
python精简笔记

python精简笔记-字符串基本用法 字符串常见用法: * encode() # 编码成bytes类型 * find() # 查找子串 * index() # 获取下标 * replace() # 替换子串 * len(string) # 返回字符串长度,...

平头哥-Enjoystudy
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部