tips
大小端数据
先以一个10进制(base-10)的数:1234 为例,方便我们来理解
我们日常读写,是以大端方式来对待的。
即 1234 = 1*10^3 + 2*10^2 + 3*10^1 + 4*10^0
如果1234 用10进制的小端表示的话,则表示为 4321
即 4321 = 4*10^0 + 3*10^1 + 2*10^2 + 1*10^3
计算机中通常是按照这样的方式去寻址和做计算的
可以认为
大端, 第一位数字代表的是 10的最大次方
小端, 第一位数字代表的是 10的最小次方
在电脑中存储
大端: 高字节存放在低地址,类似我们日常读写
小端: 低字节存放在低地址
即,以一个32位的整数 0x12345678为例
- 内存地址: 1000 1001 1002 1003
- 存储数据: 0x78 0x56 0x34 0x12
在网络传输中
使用大端,也就是常说的网络字节序。
所以我们的代码在发送数据包的时候,总是要调用 htonl (host to network long)
go代码中
encoding/binary 包中
base-2562,3,5,7 = 2*256^0 + 3*256^1 + 5*256^2 + 7*256^3