大小字节序:叫高低端序好理解。
1 . Little endian(小字节序、低端序) :低位字节排放在内存的低地址端,高位字节排放在内存的高地址端。
2 . Big endian (大字节序、高端序):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端。
变量如何存,如何传输?
例如在内存中一个4字节十六进制变量。int a=0x01020304,它从左到右是 [高位到低位排列]。即04字节是最低位。
内存地址: 4001 4002 4003 4004
LE低端序: 04 03 02 01 (低端这位字节先存),存在低地址
BE高端序: 01 02 03 04 (高端这位字节先存),存在低地址
传输顺序:一般在数据传输时,先存的先传输。LE先传在变量a[低位的04字节],BE先传在变量a[高位的01字节]。
反过来数组重新组合成变量?
举例LE低端序传输的数组array,还原成int的时候,array[0]先放最低位,再逐位往高位放。
按BE高端序传输的数组array,还原成int的时候,array[0]先放最高位,再逐位往低位放。
进制转换:
二进制转十六进制: 以4个bit(位)为一段,即8421方式算,如下:
1111 0101——>8+4+2+1 0+4+0+1——>0x15 5——>0xF 5
二进制转十进进制:
1.每个bit乘以对应的权数,这些结果再相加:
1*2(7次方)+1*2(6次方)+1*2(5次方)+1*2(4次方)+0*2(3次方)+1*2(2次方)+0*2(1次方)+1*2(0次方)——>
128+64+32+16+4+1=245
2..先转十六进制,再转十进制。即1111 0101——>0xF 5——>15*16+5=245
二进制化为八进制:
整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。
小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。
例:(11001111.01111)2 = (011 001 111.011 110)2 = (317.36)8