duobango-tinyNET,20121217,Endianness
网络杂学点
tnet_endianness.h涉及字节序,又称端序,尾序(英语:Endianness)。在计算机科学领域中,字节序是指存放多字节数据的字节(byte)的顺序,典型的情况是整数在内存中的存放方式和网络传输的传输顺序。
大端序(英:big-endian)或称大尾序。
小端序(英:little-endian)或称小尾序。
eg:0x0A0B0C0D
big-endian
地址增长方向 →
... 0x0A 0x0B 0x0C 0x0D ...
little-endian
地址增长方向 →
... 0x0D 0x0C 0x0B 0x0A ...
一般用于描述串行设备的传输顺序。网络协议中只有数据链路层的底端会涉及到。
小端序(先传低位)的串行协议
RS-232
RS-422
RS-485
USB
大端序(先传高位)的串行协议
I2C协议
SPI协议
摩尔斯电码
以太网
判断代码:
// 判断大端序和小端序
short word = 0x4321;
//unsigned char t = (unsigned char)word;
//printf("%d = t" ,t);
//unsigned char* t = (unsigned char *)&word;
//printf("%d = t" ,*t);
bool isBigEnbian = ((*(unsigned char *)&word) != 0x21);
if (isBigEnbian)
printf("big-enbian");
else
printf("little-enbian");
++++++++++++++++++++++++++++++++++++++++++++++++
无论生活、还是技术,一切都不断的学习和更新~~~努力~