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");
++++++++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/GoGoagg/archive/2012/12/17/2821876.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值