《程序是怎样跑起来的》是程序员必备的一本书,是作者矢泽久雄对程序在电脑里如何运行的一本详细而又有趣的书。
在 C 和 Java 等高级语言编写的程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。之所以用二进制数表示计算机信息是因为计算机内部是由IC这种电子部件构成的,而IC的引脚只能表示两个状态。二进制的数值转化成十进制数的值,只需要讲二进制数的各数位的值和位权相乘,然后将相乘的结果相加就行了。和十进制数一样,二进制数也可以使用四则运算,只要注意逢二进位即可。移位运算。移位运算指的是将二进制数值的各数位进行左右移位的运算。移位有左移和右移两种。在一次运算中,可以进行多个数位的移位操作。移位运算也可以通过数位移动来代替乘法运算和除法运算。
右移后会在高位空出来一个数值,这个数值只有0和1两种形式。二进制表示负数值时,一般会把最高位作为符号来使用,这个最高位被称为符号位。符号位是0时表示正数,符号位是1时表示负数。当二进制数的值表示图形模式而非数值时,移位后需要在最高位补0。类似于霓虹灯往右滚动的效果。这就称为逻辑右移。将二进制数作为带符号的数值进行运算时,移位后要在最高位填充移位前符号位的值(0 或 1)。这就称为算术右移。只有在右移时才必须区分逻辑位移和算数位移。计算机能处理的运算,大体可以分为算术运算和逻辑运算。
读了第二章后我对二进制数、移位运算、逻辑运算等都变得十分了解了。从本章中我学到了很多东西。这本书对我深入理解操作系统的工作原理有很大的帮助,我将继续阅读下去,了解更多操作系统的相关内容。