第一章笔记传送门 👉 点击这里
第二章笔记传送门 👉 点击这里
第三章笔记传送门 👉 点击这里
第四章笔记传送门 👉 点击这里
第五章笔记传送门 👉 点击这里
第六章笔记传送门 👉 点击这里
第七章笔记传送门 👉 点击这里
第八章笔记传送门 👉 点击这里
第九章笔记传送门 👉 点击这里
第二章:数据是用二进制表示的
单元前问题:
- 32位是几个字节
4个字节(一个字节为8位) - 二进制01011100转化为十进制数是多少
92 - 二进制数00001111左移两位后,会变成原数的几倍
4倍(即2的平方倍) - 补码行式表示的8位二进制数11111111,用十进制数表示的话是多少
-1(所有位都是1的二进制数,用十进制数表示的话就是-1) - 补码行式表示的8位二进制数10101010,用16位的二进制数表示的话是多少
1111111110101010 - 反转部分图形模式时,使用的是什么逻辑运算
XOR运算(XOR运算只反转与1相对应的位,NOT运算是反转所有的位)
2.1 用二进制数表示计算机信息的原因
- IC的所有引脚,只有直流电压0V或5V两个状态。(即IC的一个引脚只能表示两个状态)(大部分IC的电源电压都是+5V,但是为了控制电量消耗,有时也会使用+5V之下的电压,这是引脚状态不只是0V和+5V,还存在不接受电流信号的高阻抗状态。)
- IC分为模拟IC和数字IC
- IC的一个引脚表示二进制数的1位
- 位:计算机处理信息的最小的单位(最小单位)
- 字节:最基本的信息计量单位(基本单位)(内存和磁盘都是使用字节单位来存储和读写数据)
- 用字节单位处理数据时,如果数据小于存储的字节数,那么高位就用0填补
2.2 什么是二进制数
(这部分高中都学过,就不赘述了)
2.3 移位运算和乘除运算的关系
- 二进制数所特有的运算,也是计算机所特有的运算,因此可以说是了解程序运行原理的关键。
- 移位运算:
’ << '左移(变大)
’ >> '右移(变小)
运算符的左侧是被移位的值,右侧表示移位的位数。
左移运算空出来的低位用0补齐
移位操作使最高位或者最低位溢出的数字,直接丢弃就可以了
移位运算能替代乘法运算和除法运算
2.4 便于计算机处理的“补数”
- 二进制表示负数时一般把最高位当作符号位(0表示正数,1表示负数)
- 计算机做减法运算时,其实是内部在做加法运算
- 补数:用正数来表示负数
- 如何求补数:各数位取反后再将结果加1(取反+1)
- 需要注意的是,当运算结果为负数时,运算结果的值也是用补数的行式来表示的。
(比如3-5这个运算,3的8进制表示为00000011,而5=00000101的补数为11111011.
因此3-5=00000011+11111011=11111110.可以类比负负得正的性质,对补数求补数,可 以得到该结果的绝对值,上述结果11111110求补数为00000010,所以绝对值大小为2, 根据原数的符号位,则可知运算结果为-2)
2.5 逻辑右移和算数右移的区别
- 当二进制表示图形模式而非数值时,移位后需要在最高位补0.类似于霓虹灯往右滚动的效果,这就是逻辑右移。
- 当二进制数作为带符号的数值进行运算时,移位后要在最高位填充移位前符号位的值,这就是算术右移。
(以八进制为例)符号扩充:保持值大小不变的情况下将8位二进制数转化为16进制或32位。
2.6 掌握逻辑运算的窍门
- 在运算中,与逻辑对应的术语是算术(我们不妨这样考虑:将二进制数表示的信息作为四则运算的数值来处理就是算术。而像图形模式那样,将数值处理为单纯的0和1的罗列就是逻辑。
- 逻辑运算:
逻辑非(NOT运算):取反,0->1, 1->0
逻辑与(AND运算):同时为1时结果为1,其他情况都为0
逻辑或(OR运算):至少有一方为1时,运算结果为1
逻辑异或(XOR运算):排斥相同数值的运算。两个数值不同,运算结果为1 - 不管是几位的二进制数,在进行逻辑运算时,都是对相应的各数位分别进行运算
- 逻辑运算的窍门:摒弃用二进制数表示数值这一想法。不要把二进制数表示的值当作数值,而是把它当作图形或者开关。逻辑运算的运算对象不是数值,因为不会出现进位的情况。