一、程序的运行机制与二进制数的关系
1、程序的运行机制:要想对程序的运行机制形成一个大致印象,就要了解信息(数据)在计算机内部是以怎样的形式来表现的,又是以怎样的方法进行运算的。
2、二进制数的作用:在C和Java等高级语言编写的程序中,数值、字符串和图像等信息在计算机内部都是以二进制数值的形式来表现的。
3、两者关系:只要掌握了使用二进制数来表示信息的方法及其运算机制,也就自然能够了解程序的运行机制了。
二、用二进制数表示计算机信息的原因
IC的特性:IC的所有引脚,只有直流电压0V或5V两个状态。也就是说,IC的一个引脚,只能表示两个状态。IC的这个特性,决定了计算机的信息数据只能用二进制数来处理。虽然二进制数并不是专门为IC而设计的,但是和IC的特性非常吻合(图2-1)。计算机处理信息的最小单位——位,就相当于二进制中的一位。位的英文bit是二进制数位(binary digit)的缩写。
(1、IC是集成电路(Integrated Circuit)的简称,有模拟IC和数字IC两种。
2、大部分IC的电源电压都是+5V。不过,为了控制电量的消耗,有的IC也会使用+5V以下的电压。如果IC使用的电源电压为+5V,那么引脚状态就不只是0V和+5V,还存在不接收电流信号的高阻抗(high impedance)状态。
)
程序中,即使是用十进制数和文字等记述信息,在编译后也会转换成二进制数的值,所以,程序运行时计算机内部处理的也是用二进制数表示的信息。
示例:
三、二进制数
1、什么是二进制数:
示例:把00100111这个二进制数值转换成十进制数值。二进制数的值转换成十进制数的值,只需将二进制数的各数位的值和位权相乘,然后将相乘的结果相加即可。
2、二进制数的特征:
①所有数的0次幂都是1。
②数值的表现方法,进位计数制中各数位上可能有的数值的个数。十进制数的基数是10,二进制数的基数是2。
四、二进制数的运算
1、二进制数运算的作用:二进制数所特有的运算,也是计算机所特有的运算,因此可以说是了解程序运行原理的关键。
2、运算方法:移位运算和乘除运算。
(1)移位运算:移位运算指的是将二进制数值的各数位进行左右移位(shift=移位)的运算。移位有左移(向高位方向)和右移(向低位方向)两种。在一次运算中,可以进行多个数位的移位操作。
示例:00100111左移两位
(2)移位运算与乘除运算的关系:移位运算也可以通过数位移动来代替乘法运算和除法运算。
五、补数
1、概念:计算机在做减法运算时,实际上内部是在做加法运算。在表示负数时就需要使用“二进制的补数”。补数就是用正数来表示负数。
示例:获取00000001的补数的方法
这里所说的取反是指,把二进制数各数位的0变成1,1变成0。
2、负数表示有正误之分:
示例:
(1)负数表示有误时的情况:
(2)负数表示正确时的情况:
六、逻辑右移和算术右移的区别
1、逻辑右移:当二进制数的值表示图形模式而非数值时,移位后需要在最高位补0。类似于霓虹灯往右滚动的效果。这就称为逻辑右移。
2、区别:只有在右移时才必须区分逻辑位移和算术位移。左移时,无论是图形模式(逻辑左移)还是相乘运算(算术左移),都只需在空出来的低位补0即可。