进制学习

进制对应的英文 name 中文名 含义 举例(以十进制为标准,10的转换) binary 二进制 满2进1 1010 Octal 八进制 满8进1 12 Decimal 十进制 满10进1 10 Hex 十六进制 满16进1 a 进制转换在线工具 golang中进制之间的相互转换 首先看看go自带的包 “encoding/hex” “encoding/binary” 重点分析 2、10、16进制之间的相互转换 hex 分析 func Encode(dst, src []byte) int { for i, v := range src { dst[i*2] = hextable[v>>4] dst[i*2+1] = hextable[v&0x0f] } return len(src) * 2 } Encode函数将src目标字节数组,转换成16进制形式的dst字节数组,数组长度翻倍 原理:将原来用一个字节表示的内容,用两个字节来表示,所以返回的dst是src的两倍长度 将原字节右移4位,得到高位内容(ascii码),放在第一个字节,原字节与0000 1111与,得到低位内容(ascii码),放到第二字节 func Decode(dst, src []byte) (int, error) { var i int for i = 0; i < len(src)/2; i++ { a, ok := fromHexChar(src[i*2]) if !

Read More →