计算机组成原理之整数的表示和运算
一、整数的表示
无符号整数:直接使用二进制位表示其值,范围从0到2^n-1(n为位数)。
有符号整数:通常使用补码表示法。在这种表示法中,最高位是符号位(0为正,1为负),其余位表示数值的大小。这种表示法使得加法、减法运算变得简单统一,因为计算机内部可以直接使用加法器来处理减法(通过加上一个数的补码)。
二、整数的运算
加法:对于有符号数和无符号数,加法运算都是直接对位进行加法操作,但解释结果时需要考虑数的表示方式(补码或有符号/无符号)。
减法:在计算机内部,减法通常通过加法来实现,即减去一个数等于加上这个数的补码。
乘法:乘法可以通过加法实现,即重复的加法操作,或者通过专门的乘法器电路来高效完成。
除法:除法可以通过减法实现,即重复的减法操作,直到被除数小于除数为止,或者通过专门的除法器电路来高效完成。
移位运算:包括逻辑移位和算术移位。逻辑移位不考虑符号位,左移时右侧补0,右移时左侧补0;算术移位则考虑符号位,左移时右侧补0,右移时根据符号位补1或0。
符号扩展:在将一个有符号数的位数增加时,保持其值不变。对于正数,扩展位全为0;对于负数,扩展位全为1。
类型转换:在编程中,经常需要在有符号数和无符号数之间进行转换。这种转换通常不会改变位模式,但会改变数的解释方式。例如,将一个负的有符号整数转换为无符号整数,其值会变成一个很大的正数。