文档章节

Golang二进制转换十进制代码

一曲
 一曲
发布于 2015/06/05 13:47
字数 212
阅读 269
收藏 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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring Cloud Gateway真的有那么差吗?

前言 Spring Cloud从一开始最受大家质疑的就是网关性能,那是由于Spring Cloud最初选择了使用Netflix几年前开源的Zuul作为基础,而高性能版的Zuul 2在经过了多次跳票之后,对于Spring这样的整...

Java小铺
42分钟前
1
0
SpringBoot远程调试,远程debug你的线上项目

开发环境中代码出错了,可以利用IDE的debug功能来进行调试。那线上环境出错呢? 一、假设我们的项目是部署在tomcat中,那我们就需要对tomcat进行一定对配置,配置如下。 1. windows系统中,找...

nonnetta
47分钟前
0
0
JAVA秒杀优化方向

秒杀优化方向 将请求尽量拦截在系统上游:传统秒杀系统之所以挂,请求都压倒了后端数据层,数据读写锁冲突严重,几乎所有请求都超时,流量虽大,下单成功的有效流量甚小,我们可以通过限流、...

小贱是个程序员
55分钟前
0
0
C# 统计字符串中大写字母和小写字母的个数

static void Main() { int count1 = 0; int count2 = 0; Console.WriteLine("请输入字符串"); string str = Convert.ToString(Consol......

熊二的爸爸是谁
57分钟前
0
0
分布式服务框架之远程通讯技术及原理分析

在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些名词之间到底是...

老道士
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部