二进制乘法
二进制移位运算
在看二进制乘法之前,我们首先来看一下移位运算,移位运算是对二进制补码数的算术移位运算。
二进制正数左移运算
由于二进制正数的补码和源码是一样的所以不用考虑
举个例子:
十进制数39的二进制数是00100111
对于这个数左移一位得到01001110
值为78
下图将描述算术左移的过程
对于不会超出位数范围的数来讲,对于进位标志都是进行舍去处理,若是超出范围则会增加一位来表示进位最高位。
二进制正数右移运算
我们会发现左移运算是对数的乘二,由此右移则是除以二
我们还是来看39这个数
十进制数39的二进制数是00100111
对于这个数的右移运算根据右移运算过程会得到,最高位不变即
0开头整体向右移动
得到00010011
十进制为16+2+1=18
这是因为,对于标志位c我们舍去了,所以得到整数18
二进制负数左移运算
针对负数我们有所改变
举个例子吧
-12的二进制数10001100
首先转换为补码 11110011+1=11110100