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]\n", year)

    /*
        %o:
            是一个占位符,表示一个八进制(Octal,缩写OCT)格式的数字
    */
    fmt.Printf("十进制2020对应的八进制表示为:[%o]\n", year)

    /*
        %x|%X:
            是一个占位符,表示一个十六进制(Hexadecimal,缩写HEX)格式的数字
    */
    fmt.Printf("十进制2020对应的十六进制表示为:[%x]\n", year)
    fmt.Printf("十进制2020对应的十六进制表示为:[%X]\n", year)
}

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

package main

import (
    "fmt"
)

func main() {
    /*
        温馨提示:
            以数字0开始表示该数字是八进制
        %b:
            是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字
    */
    year := 03744
    fmt.Printf("八进制03744对应的二进制表示为:[%b]\n", year)

    /*
        %d:
            是一个占位符,表示一个十进制(Decimal,缩写DEC)格式的数字
    */
    fmt.Printf("八进制03744对应的十进制表示为:[%d]\n", year)

    /*
        %x|%X:
            是一个占位符,表示一个十六进制(Hexadecimal,缩写HEX)格式的数字
    */
    fmt.Printf("八进制03744对应的十六进制表示为:[%x]\n", year)
    fmt.Printf("八进制03744对应的十六进制表示为:[%X]\n", year)

}

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

package main

import (
    "fmt"
)

func main() {

    /*
        温馨提示:
            以0x开始表示该数字是十六进制
        %b:
            是一个占位符,表示一个二进制(Binary,缩写BIN)格式的数字
    */
    year := 0x7e4
    fmt.Printf("十六进制0x7e4对应的二进制表示为:[%b]\n", year)

    /*
        %o:
            是一个占位符,表示一个八进制(Octal,缩写OCT)格式的数字
    */
    fmt.Printf("十六进制0x7e4对应的八进制表示为:[%o]\n", year)

    /*
        %d:
            是一个占位符,表示一个十进制(Decimal,缩写DEC)格式的数字
    */
    fmt.Printf("十六进制0x7e4对应的十进制表示为:[%d]\n", year)

}

posted @ 2020-02-02 01:38  JasonYin2020  阅读(3806)  评论(0编辑  收藏  举报