第二章的主题是“数据是用二进制数表示的”,那么何为二进制数呢?
二进制数是逢2进位的进位制,0和1是基本算符;计算机运算基础采用二进制。电脑的基础是二进制。在早期设计的常用的进制主要是十进制,因为我们有十个手指,所以十进制是比较合理的选择,用手指可以表示十个数字,0的概念直到很久以后才出现,所以是1至10而不是0至9。电子计算机出现以后,使用电子管来表示十种状态过于复杂,所以所有的电子计算机中只有两种基本的状态,开和关。在上章节讲到的CPU中,有引脚这种东西,有电流通过时,数值为1,没有电流时,则为0。也就是说,电子管的两种状态决定了以电子管为基础的电子计算机采用二进制来表示数字和数据。常用的进制还有8进制和16进制,在电脑科学中,经常会用到16进制,而十进制的使用非常少,这是因为16进制和二进制有天然的联系:4个二进制位可以表示从0到15的数字,这刚好是1个16进制位可以表示的数据,也就是说,将二进制转换成16进制只要每4位进行转换就可以了。但是在计算机的计算中,二进制数是常用的。二进制数的位数是8的倍数,因为计算机处理数据的基本单位是8位二进制数,其被称为一个字节,书中还讲到一个概念————位权,是一个数学名词,是指数制中每一固定位置对应的单位值。数码所表示的数值等于该数码本身乘以一个与它所在数位有关的常数,这个常数就称为“位权”。二进制中第2位的位权为2,第3位的位权为4,对于 N进制数,整数部分第 i位的位权为N(i-1),而小数部分第j位的位权为N-j。
第二块主要讲的是二进制的移位运算和逻辑运算。位移运算是将二进制数向左或向右移动一定的位数,左移运算相当于乘以2的n次方,右移运算相当于除以2的n次方。位移运算通常用于优化代码或实现数据压缩等操作,逻辑运算就常见了,计算机中常见的逻辑运算有与、或、异或、非。 逻辑运算的结果通常为布尔值(True或False),这些在上学期学到的java语言中都有体现。
而第二章讲的二进制数的运算中只涉及整数,小数的运算,则在第三章中有所体现。
这就是我对第二章的总结。