文档章节

Golang二进制转换十进制代码

一曲
 一曲
发布于 2015/06/05 13:47
字数 212
阅读 330
收藏 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] 进制的转换

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

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

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

zhouzxi
2017/06/01
0
0
Java进制概述及进制间的相互转换

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

深情不及酒伴
2017/11/28
0
0
arduino从零开始(14)认识二进制数

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

Python与Arduino
02/19
0
0
基于Verilog HDL的二进制转BCD码

在项目设计中,经常需要显示一些数值,比如温湿度,时间等等。在数字电路中数据都是用二进制的形式存储,要想显示就需要进行转换,对于一个两位的数值,对10取除可以得到其十位的数值,对10取...

NingHeChuan
08/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

jena RDF学习笔记

一、首先要了解RDF和Jena RDF的介绍: An Introduction to RDF and the Jena RDF API RDF及Jena RDF API介绍(中翻) 在Jena中,用于表示单个三元组的Java类是Statement。根据RDF规范,只有资...

孙幼凌
27分钟前
1
0
HTML5 240行代码实现粒子漩涡特效

效果 源码如下 <!doctype html><html><head><meta charset="utf-8"><title>H5,200行代码实现粒子漩涡特效</title><style>html,body{margin:0px;width:100%;height:100%......

lanyu96
34分钟前
1
0
fine report

FineReport xx no: 0941626c-5e513d196-f528-74a7c52d8e61

youngjdong
35分钟前
2
0
get right firefox version for your selenium

find the selenium location path find / -name selenium output: /usr/local/lib/python2.7/dist-packages/selenium get the "webdriver.xpi" file, the file is under "/usr/local/lib/pyt......

关上越
42分钟前
1
0
为小程序端添加一个session机制

我们做后台用户认证的时候一般会借助于session机制,非常方便,今天我们使用小程序的Storage机制自己实现一个session。 本文思路来自于前几日对微信wafer的源码阅读,感谢wafer所有代码编写者...

阿北2017
45分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部