计算机中的一切数据都是由二进制所表示与存储的,那么为什么呢?
因为计算机内部都是由集成电路的电子元件所构成的而集成电路的引脚有0V与5V两个状态。在这种情况下,二进制是最适合用于表达计算机数据与信息的。其中计算机处理信息的最小单位是比特,8位二进制数(比特)是字节,字节是信息的基本单位,数据是以字节为单位进行存储和处理的。
而二进制在表示十进制时,就是每一位乘以所在位置的位权,而位权又是什么呢?比如一个十进制数44,就是4*10^0+4^1=44,第一位就是乘以10的0次方,第二位则是乘以10的1次方…………以此类推二进制也是一样,只不过二进制是乘以二的几次方。其中2与10分别被叫做二进制与十进制的基数。
二进制有一种特殊的运算叫做移位运算,向左(高位)移叫做左移,向右(低位)移叫做右移。二进制向左移位是空出来的低位将有0所填补。而向右移时则会涉及到负数的情况。
先说一下负数,在二进制中正负数是由二进制中最高位的情况来决定的,此时最高位被称为符号位,为0时表正数,为1时表负数。其中还要用到一种名为2的补码的表示方式。二弟不骂就是将二进制上的各位数字反转后再加1.比如1的二进制为00000001,那么-1就是11111111.
所以此时右移将会出现逻辑右移与算术右移两种情况,逻辑右移就是将数值看作图片向右移空出来的高位用0补充。而算数右移就是在右移时空出来的高位用原本的符号位来补充(0或1)。其中一种符号扩展的情况与这种差不多直接用符号位来填充空缺位即可。