使用移位很容易把符号位变换了,而乘法不会。
比如a=0b1011 1110,就是-66。
如果用左移一位代替乘2,结果左移后
a=0b0111 1100=124,负数变正数了,符号位被移走了。
而实际上a*2=-132。所以用移位代替乘法时一定要注意符号位
使用移位很容易把符号位变换了,而乘法不会。
比如a=0b1011 1110,就是-66。
如果用左移一位代替乘2,结果左移后
a=0b0111 1100=124,负数变正数了,符号位被移走了。
而实际上a*2=-132。所以用移位代替乘法时一定要注意符号位