char
和 unsigned char
数据类型作为单个字节存储在内存中,数据类型加载到寄存器的0-7位上, 并从这些位进行存储(请参阅图 6-1)。默认情况下,char
类型是有符号的。
bool
类型也作为 8 位类型存储在寄存器的 0-7 位中。
定义为 short
或 unsigned short
的对象作为两个字节存储在内存中,位于半字(2 字节)对齐的地址上。这些对象加载到寄存器的0-15位上, 并从这些位进行存储(请参阅图 6-1)。
在大端模式下,将内存的第一个字节(即较低地址)移动到寄存器的8-15位上,并将内存的第二个字节移动到0-7位上以使2字节对象加载到寄存器中。在小端模式下,将内存的第一个字节(即较低地址)移动到寄存器的0-7位上,并将内存的第二个字节移动到 8-15位上以使2字节对象加载到寄存器中。
图 6-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 = 最低有效 |