问题
-
32位是几个字节?
4字节。1字节=8位。
-
二进制数01011100转换成十进制是多少?
92
-
二进制数00001111左移两位后,会变成原数的几倍?
4倍。二进制数左移1位会变为原来的2倍。
-
补码形式表示的8位二进制数11111111,用十进制表示的话是多少?
所有位都是1的二进制数,用十进制表示就是-1。
-
补码形式表示的8位二进制数10101010,用16位的二进制数表示的话是多少?
使用原数的最高位来填充高位。1111111110101010.
-
反转部分图形模式时,使用的是什么逻辑运算?
XOR运算。XOR运算只反转与1相对应的位,NOT运算是反转所有的位。
用二进制数表示计算机信息的原因
IC的所有引脚只有直流电压0V或5V两个状态。这个特性决定了计算机的信息数据只能用二进制数来处理。虽然二进制数并不是专门为IC而设计的,但和IC的特性非常吻合。
计算机处理信息的最小单位——位bit,就相当于二进制中的一位。8位二进制数被称为1个字节。字节是最基本的信息计量单位。位是最小单位,字节是基本单位。内存和磁盘都使用字节单位来存储和读写数据。用字节单位处理数据时,如果数字小于存储数据的字节数,那么高位上就用0填补。
什么是二进制数
位权的思考方式除了适用十进制数,也同样适用于任何进制数。而多少进制称为基数。
移位运算和乘除运算的关系
移位运算指的是将二进制数值的各数位进行左右移位的运算。哪怕是十进制数,也是将其二进制数值进行移位运算。
左移后空出来的低位用0补齐;右移时的操作要复杂一些,在下一节介绍。
移位操作使最高位或最低位溢出的数字,直接丢弃就可以了。
便于计算机处理的补数
二进制数中表示负数值时,一般会把最高位作为符号来使用,因此我们把这个最高位称为符号位。符号位是0时表示正数,符号位是1时表示负数。
计算机在做减法运算时,实际上内部是在做加法运算。为此,在表示负数时就需要使用二进制的补数。补数就是用正数来表示负数。
为了获得补数,我们需要将二进制数的各数位的数值全部取反,然后再将结果加1。
逻辑右移和算术右移的区别
当二进制数的值表示图形模式而非数值时,移位后需要在最高位补0,这就称为逻辑右移。
将二进制数作为带符号的数值进行运算时,移位后要在最高位填充移位前符号位的值,这就称为算术右移。
只有在右移时才必须区分逻辑位移和算术位移。左移时,无论是图形模式还是相乘运算,都只需在空出来的低位补0即可。
符号扩充:在保持值不变的前提下将其转换成位数更高的二进制数。不管是正数还是用补数表示的负数,都只需用符号位的值填充高位即可。
掌握逻辑运算的窍门
逻辑运算包括与AND、或OR、非NOT、异或XOR四种。掌握逻辑运算的窍门,就是要摒弃用二进制数表示数值这一想法,而是把它看作是图形或者开关。逻辑运算的运算对象不是数值,因此不会出现进位的情况。