对于c中的移位运算会有移位的限制,即移位位数要小于移位数据类型的字节数。对于int类型0x01左移31位为0x80000000,当左移32位时,为0x01。即当进行移位时,当移位的位数大于31位时,会先与0x31与运算,计算出移位的位数,在进行移位操作。
判断溢出的方法: 双符号位法
符号位设置为两位,00(或11)当运算结束后,符号位相同则没有溢出,符号位不同说明有溢出。
无符号码的减法可以直接是相减,判断是否借位,不用转换为补码的运算。计算机怎么来,就不知道了,估计是转换为补码运算。