c语言移位代替乘除法要注意符号位

使用移位很容易把符号位变换了,而乘法不会。

比如a=0b1011 1110,就是-66。

如果用左移一位代替乘2,结果左移后

a=0b0111 1100=124,负数变正数了,符号位被移走了。

而实际上a*2=-132。所以用移位代替乘法时一定要注意符号位

发布了11 篇原创文章 · 获赞 0 · 访问量 613

猜你喜欢

转载自blog.csdn.net/wuqi1003/article/details/104083077
今日推荐