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

  • 相关阅读:
    vs利用正则表达式统计代码行数
    C/C++/MFC的include搜索顺序
    afxwin.h afx.h afxver.h afxv_w32.h windows.h包含顺序
    C/C++中内存块置0的三种方法:memset,ZeroMemory,SecurZeroMemory
    关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
    vs2008工程设置里添加宏
    使用共享网卡的NAT模式配置VMware中的CentOS的上网功能
    VMware10 安装centos6.7 设置NAT模式
    《大道至简》第7,8章读书笔记
    ie11浏览器和chrome浏览器对于bgsound和background的一些区别
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12250923.html
Copyright © 2011-2022 走看看