求助,golang怎样二进制转十六进制和十六进制转二进制

Python012

求助,golang怎样二进制转十六进制和十六进制转二进制,第1张

//二进制转十六进制

func btox(b string) string {

    base, _ := strconv.ParseInt(b, 2, 10)

    return strconv.FormatInt(base, 16)

}

//十六进制转二进制

func xtob(x string) string {

    base, _ := strconv.ParseInt(x, 16, 10)

    return strconv.FormatInt(base, 2)

}

一.几种公共方法

1)Print:   输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v)

print 在golang中 是属于输出到标准错误流中并打印,官方不建议写程序时候用它。可以再debug时候用

2)Println: 输出到控制台并换行

3)Printf : 只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出整形变量和整形等)

4)Sprintf:格式化并返回一个字符串而不带任何输出

5)Fprintf:来格式化并输出到 io.Writers 而不是 os.Stdout

二.带占位符输出--网址:     https://www.jianshu.com/p/8be8d36e779c

和python差不多的道理,这里简单补充

v     值的默认格式

%+v   添加字段名(如结构体)

%#v  相应值的Go语法表示 

%T    相应值的类型的Go语法表示 

%%    字面上的百分号,并非值的占位符

%c     相应Unicode码点所表示的字符 

%x     十六进制表示,字母形式为小写 a-f

%X     十六进制表示,字母形式为大写 A-F

%U     Unicode格式:U+1234,等同于 "U+%04X"

十六进制(hexadecimal)是计算机中数据的一种表示方法。它的规则是“逢十六进一”。

十六进制数具有下列两个特点:

英文字母A,B,C,D,E,F分别表示数字10~15。

计数到F后,再增加1个,就进位。

十六进制数是计算机常用的一种计数方法,它可以弥补二进制数书写位数过长的不足,也用于电视机中。

十六进制数的表示方式为0x开头。

示例:0xAF=175

十六进制数的基数是16,采用的数码是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中A-F分别表示十进制数字10-15.十六进制数的技术规则是“逢十六进一”,它的各位的权是以16的N次方标识的。通常,对十六进制数的表示,可以在数字的右下角标注16或H,但在C语言中是在数的前面加数字0和字母X即0X来表示。例如,12AF在C语言中表示为0X12AF。

十六进制数的加减法的进/借位规则为:借一当十六,逢十六进一。

比如17,用它除以16,满十六向十位进1,余1留在个位!所以它的十六进制是11。

各进制数的参照: