1. 有符号整数
负数的表示
符号及值表示法
最高位为符号位,0为正数,1为负数;
存在两个零:
+0:00000000;-0:100000000
二进制补码运算
减去一个数等于加上这个数的补数;
求补数方法:
各位取反加一
01100101补数:10011010+1=10011011
n位全是1与一个n位二进制数差结果为取反,1-0=0;1-1=1;
所以补码运算全取反再加一;
补码最高位为符号位;
移位运算
算术左移
最低位补0,最高位复制到进位标志中;
算术右移
最高位补符号位,最低位复制到进位标志中;
计算机计算乘法过程
先将计数器值置为n(二进制位数),然后2n的部分积清零(存储结果),检查乘数
最右位1还是0,将其乘被乘数后,之后加到部分积最低n位(左面为低位,因为要不断右移,一开始先乘的在最右面),计数器的n-1,部分积右移一位,计算下一个部分积的和;直到计数器的n为0;
快速乘法
与负数相乘
布斯乘法
根据乘数相邻两位的值确定操作
1.开始乘数当前位为最低位时,乘数当前位下一位为0;
2.当前位为1,下一位为0,部分积减去被乘数;
3.当前位为0,下一位为1,部分积加上被乘数;
4.被乘数当前位与下一位相同,不进行任何运算,部分积右移一位;
5.被乘数与部分积相加,进位舍去;
6.每次运算后,部分积右移一位