- 整数在内存中的存储
无符号数
机器字长为n+1位的无符号数表示的范围是0~(2^(n+1)-1),此时二进制的最高位也是数值位,其权值位2^n。若字长为8位,则数的表示范围为0~255(2^8-1),即八个1。
有符号数
约定二进制数的最高位为符号位,0表示正,1表示负。
在内存中,以补码的形式存储数据。
正数的原码、反码、补码一致。负数的反码:符号位不变,数值位按位取反;负数的补码:符号位不变,数值位按位取反,末尾+1。
—–对于八位二进制数,补码的范围为-128~127。其中1000 0000在补码中表示为-128,在原码中表示-0,在反码中表示-127。
大小端存储
大端存储模式:是指数据的地位保存在内存的高地址中,而数据的高位保存在内存的低地址之中。
小端存储模式:是指数据的地位保存在内存的低地址中,而数据的高位保存在内存的高地址之中。
大小端原理
因为在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型(由编译器决定),另外,对于位数大于8位的处理器。例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。例如16位bit的short型x,在内存中