char 和 unsigned char 数据类型作为单个字节存储在内存中;数据类型加载到寄存器的0-7位上, 并从这些位进行存储(请参阅图 8-1)。定义为 short 或 unsigned short 的对象作为两个字节存储在内存中,位于半字(2 字节)对齐的地址上;这些对象加载到寄存器的0-15位上, 并从这些位进行存储(请参阅图 8-1)。
在大端模式下,将内存的第一个字节(即较低地址)移动到寄存器的8-15位上,并将内存的第二个字节移动到0-7位上以使2字节对象加载到寄存器中。在小端模式下,将内存的第一个字节(即低地址)移动到寄存器的0-7位上,并将内存的第二个字节移动到-15位上以使2字节对象加载到寄存器中。
图 8-1 Char 和 Short 数据存储格式 S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | I | I | I | I | I | I |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | U | U | U | U | U | U | U |
S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | S | I | I | I | I | I | I | I | I | I | I | I | I | I | I | I |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | U | U | U | U | U | U | U | U | U | U | U | U | U | U | U | U |
图例: S = 符号,I = 有符号整数,U = 无符号整数,MS = 最高有效,LS = 最低有效 |