字符编码(三) 字节序、bit序、 有效位

来源:互联网 发布:淘宝收藏店铺怎么设置 编辑:程序博客网 时间:2024/05/18 14:42

1、字节序: 一个(占多字节的)数据单元的字节顺序。Java中byte没有字节序问题,其他都有字节序问题。不必考虑byte内部bit的细节。bit序:一个字节内,bit的顺序

        大,小:权值大,权值小

        端:开端,左边是开端,左边是低地址,人的思维从左到右,

 

        1) Big-Endian:权值最大(高)的字节(MSB)放在低地址(端)。实例:java,TCP

        2) Little-Endian:权值最小的字节(MSB)放在低地址(端)。实例:win7

 

2、实例:数字0x12 34 56 78在内存中的表示形式为:

        1)大端模式:

        低地址 -----------------> 高地址

        0x12  |  0x34  |  0x56  |  0x78

        2)小端模式:

        低地址 ------------------> 高地址

        0x78  |  0x56  |  0x34  |  0x12

 

3、大端小端没有谁优谁劣,各自优势便是对方劣势:

        小端模式 :强制转换数据不需要调整字节内容,1、2、4字节的存储方式一样。

        大端模式 :符号位的判定固定为第一个字节,容易判断正负。

        

4、bit序:一个字节内,bit的顺序。大都是大端序,左大右小,比如TCP中6bits的标志位:

        URG=2^5=32=0x20 

        ACK=2^4=16=0x10

        PSH=2^3=8=0x08

        RST=2^2=4=0x04

        SYN=2^1=2=0x02

        FIN=2^0=1=0x01

        

5、bit序可以参考下面的,不过不常用

        最低有效位(lsb,least significant bit):

        1), lsb指一个二进制数字中的第0位(即最低位,最低权重位,权值为2^0)

        2), LSB(the Least Significant Byte),多字节序列中具有最大权重的字节。

        

        最高有效位(msb,Most Significant Byte)

        1), lsb的反面。

        2), LSB的反面

原创粉丝点击