计算机数据处理与储存:
一、移位操作:分为逻辑移位与算数移位
①正数补码和原码移位规则:
符号位不变(双符号位第一位不变),空位补0.
②负数补码移位规则
符号位不变(双符号位第一位不变),左移补0,右移补1(第二符号位移到尾数第一位)
二、舍入方法
①:0舍1入(原码、补码)
②:末位恒置1(原码、补码)
三、数位拓展与压缩:
①符号拓展:直接将符号位填充到拓展位
000A ->0000000A
800A->FFFF800A(8的二进制为1000,相当于前面补了16个1)
②0拓展:高位全补0(只作用于无符号数)
002A->0000002A
③位数压缩:弃高位留低位
F12B800A->800A
四、数据存储:
①小端模式:小地址单元存储数据低位
FF FF 00 01(从左到右地址减小) -> FFFF0001
②大端模式:大地址单元存储低位
FF FF 00 01(从左到右地址减小)-> 0100FFFF
为什么有大小端模式之分?
在计算机系统中,我们是以字节为单位的,每个地址单元都对应着一个字节,一个字节为 8bit。但是在C语言中除了8bit的char之外,还有16bit的short型,32bit的long型,另外,对于位数大于 8位的处理器,例如16位或者32位的处理器,由于寄存器宽度大于一个字节,那么必然存在着一个如何将多个字节安排的问题。因此就导致了大端存储模式和小端存储模式。
小端模式:强制转换数据不需要调整字节内容
大端模式:符号位的判定固定为第一个字节,容易判断正负
五、数据字对齐
①:按边界对齐:
例如 int i,short k double x,char c
访问全部数据需要1+1+2+1=5次
②不按边界对齐:
访问全部数据需要1+1+3+1=6次