整数在内存中的储存
整数在内存中存储通常采用二进制补码形式。这里需要去了解二进制表示的三种方法:原码、反码和补码,正整数的原、反、补码都相同。反整数的各不相同,
- 原码:直接将数值按照正负数的形式翻译成二进制得到的就是原码。
- 反码:将原码的符号位(数值的最高一位)不变,其他依次按位取反得到反码。
- 补码:反码+1得到补码。
对于整形来说,数据在内存中存放的是补码。因为用补码来储存可以将符号位(0表‘+’,1表‘-’)和数值域统一处理,加法和减法也一样。而且,补码和原码相互转换的运算过程是相同的,不需要额外的硬件电路。
大小端字节序和字节序判断
什么是大小端?
在计算机系统中,数据的存储可以按照不同的顺序排列字节,这种排列方式被称为字节序(Endianness)。
主要是有两种类型的字节序:大端字节序(Big-Endian)和小端字节序(Little-Endian)。
-
大端字节序:就是把数据的低位字节内容保存在内存的高地址处,高位字节保存在内存的低地址处。例如,十六进制值
0x12345678
在大端字节序中存储为12 34 56 78
。 -
小端字节序:就是把数据的低位字节内容保存在内存的