以字节为单位的大小端序


1、每两位的十六进制数对应存储一个字节:
0x00~0xFF对应二进制数00000000~11111111
2、大小端序是指以字节为单位 在内存中的排列顺序:
十六进制整数: 0x12345678
对应十进制整数 : 305419896
对应二进制整数(4字节): 00010010 00110100 01010110 01111000
X86处理器小端序按字节从小端到大端排列: 01111000 01010110 00110100 00010010
逐字节对应十六进制整数: 78 56 45 12
3、另,使用位或 位与运算可以使一个TYPE(1字节)、WORD(2字节)和DWORD(4字节)的数容纳很多信息:
例如:表征类型的一个数DWORD m_nType,该类型有集中标注类型LABEL_MASS = 0x01; 原位标注类型LABEL_INPLACE = 0x02; 不清楚暂时前两者都可以是(允许同时具有前两者的类型属性)的自由类型LABEL_FREE = 0x01|0x02; 以及不可能是这两种类型之一(自然也不会是两者均可以的自由类型) LABEL_UNKNOWN = 0x00; (每个二进制位表征一种状态)
在该数确定是两种标注类型之一但尚不明晰的状态可以用 m_nType |= LABEL_MASS; m_nType |= LABEL_INPLACE; 最后如果明确了该类型是集中标注则m_nType = LABEL_MASS; 如果两种属性都是则 m_nType = LABEL_MASS | LABEL_INPLACE; 判断该类型是否是单纯的集中标注类型(位状态完全一致):m_nType == LABEL_MASS; 判断该类型是否具有集中标注属性:m_nType & LABEL_MASS ==LABEL_MASS; 判断该类型是否同时具有集中原位属性: m_nType & LABEL_MASS == LABEL_MASS && m_nType & LABEL_INPLACE == LABEL_INPLACE; 或者m_nType == LABEL_MASS | LABEL_INPLACE;
