zoukankan      html  css  js  c++  java
  • Golang的进制转换实战案例

             Golang的进制转换实战案例

                                作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

     

    一.常用进制概述

    1>.进制概述

      进制也就是进位制,是人们规定的一种进位方法。举个例子:二进制就是逢二进一,八进制就是封八进一,十进制就是逢十进一,十六进制就是锋十六进一,以此类推,X进制就是逢X进位。
    
      下面我们说一下在编程中常用的几种进制:
        二进制(Binary,缩写BIN):
          是计算技术中广泛应用的一种进制数。二进制数据就是用0和1两个数字来表示的数,它的基数为2,进位规则是"逢二进一",借位规则是"借一当二"
          温馨提示:不能在程序中定义二进制数字。     八进制(Octal,缩写OCT):       一些编程语言中常常以数字0开始表示该数字是八进制,采用0,
    1,2,3,4,5,6,7这八个数字来表示的数,他的基数为8,进位规则是"逢八进一",借位规则是"借一当八"。     十进制(Decimal,缩写DEC):       生活中常用的就是十进制,比如1张100元人名币价值等于100个一元的硬币。采用0,1,2,3,4,5,6,7,8,9这十个数字来表示的数,它的基数为10,进位规则是"逢十进一",借位规则是"借一当十"。     十六进制(Hexadecimal,缩写HEX):       在计算机中十六进制一般表示内存地址。通我们日常生活中的表示方法不一样,采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F这十个数字[0-0]和六个字母[A-F]来表示的数,它的基数为16,进位规则是"逢十六进一",借位规则是"借一当十六"

    2>.进制转换

      我记得小时候学习进制转换还是在初中的数学课本里学习的,但现在小学的课本里出现了进制转换的影子。我记得去年跟我领导的聊天时,他给我看手机里记录他小学三年级儿子的课本,其中有一道数学题搞不懂,想让我帮忙解释一下,其实就是计算机的二进制转换十进制的知识点。
    
      大家都是九年义务教育,对简单的进制转换的概念都已经了如指掌了,毕竟生活中我们也常用到进制呢,我这里就不罗嗦了。想要简单回顾一下,可以看一下我之前学习时记录比较粗糙的笔记,博主推荐阅读:
        https://www.cnblogs.com/yinzhengjie/p/8656833.html
        https://www.cnblogs.com/yinzhengjie/p/8666354.html
    
      接下来,我们一起来学习一下在Golang中,常用进制是如何转换的吧。

     

    二.进制转换概述

    1>.十进制转换其它进制案例

    package main
    
    import (
        "fmt"
    )
    
    func main() {
    
        /*
            温馨提示:
                自动推导类型的变量默认是十进制(Decimal,缩写DEC)的数字,这可能和咱们生活中的习惯方式有关。
            %b:
                是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字
        */
        year := 2020
        fmt.Printf("十进制2020对应的二进制表示为:[%b]
    ", year)
    
        /*
            %o:
                是一个占位符,表示一个八进制(Octal,缩写OCT)格式的数字
        */
        fmt.Printf("十进制2020对应的八进制表示为:[%o]
    ", year)
    
        /*
            %x|%X:
                是一个占位符,表示一个十六进制(Hexadecimal,缩写HEX)格式的数字
        */
        fmt.Printf("十进制2020对应的十六进制表示为:[%x]
    ", year)
        fmt.Printf("十进制2020对应的十六进制表示为:[%X]
    ", year)
    }

    2>.八进制转换其它进制案例

    package main
    
    import (
        "fmt"
    )
    
    func main() {
        /*
            温馨提示:
                以数字0开始表示该数字是八进制
            %b:
                是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字
        */
        year := 03744
        fmt.Printf("八进制03744对应的二进制表示为:[%b]
    ", year)
    
        /*
            %d:
                是一个占位符,表示一个十进制(Decimal,缩写DEC)格式的数字
        */
        fmt.Printf("八进制03744对应的十进制表示为:[%d]
    ", year)
    
        /*
            %x|%X:
                是一个占位符,表示一个十六进制(Hexadecimal,缩写HEX)格式的数字
        */
        fmt.Printf("八进制03744对应的十六进制表示为:[%x]
    ", year)
        fmt.Printf("八进制03744对应的十六进制表示为:[%X]
    ", year)
    
    }

    3>.十六进制转换成其它进制案例

    package main
    
    import (
        "fmt"
    )
    
    func main() {
    
        /*
            温馨提示:
                以0x开始表示该数字是十六进制
            %b:
                是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字
        */
        year := 0x7e4
        fmt.Printf("十六进制0x7e4对应的二进制表示为:[%b]
    ", year)
    
        /*
            %o:
                是一个占位符,表示一个八进制(Octal,缩写OCT)格式的数字
        */
        fmt.Printf("十六进制0x7e4对应的八进制表示为:[%o]
    ", year)
    
        /*
            %d:
                是一个占位符,表示一个十进制(Decimal,缩写DEC)格式的数字
        */
        fmt.Printf("十六进制0x7e4对应的十进制表示为:[%d]
    ", year)
    
    }

  • 相关阅读:
    Codeforces Round #693 (Div. 3) G. Moving to the Capital (图,dp)
    Educational Codeforces Round 102 (Rated for Div. 2) B. String LCM (构造,思维)
    Hadoop离线计算——环境搭建(一)
    大数据项目开发进度(实时更新)
    【迭代式开发】v1架构设计文档——大数据开发实战项目(三)
    【迭代式开发】V1软件需求规格说明书——大数据开发实战项目(二)
    Flume安装——环境搭建(二)
    【中英双语】Spark官方文档解读(一)——Spark概述
    TortoiseSVN使用教程【多图超详细】——大数据开发实习day1
    【深度学习TPU+Keras+Tensorflow+EfficientNetB7】kaggle竞赛 使用TPU对104种花朵进行分类 第十八次尝试 99.9%准确率
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12250923.html
Copyright © 2011-2022 走看看