现在的位置: 首页 > 综合 > 正文

C语言左移和右移计算的注意点

2013年09月13日 ⁄ 综合 ⁄ 共 357字 ⁄ 字号 评论关闭

左移运算大多数情况下可以看成是乘法运算(除去高位溢出的情况),但是显然比乘法运算快很多。

注意点:如果一个字节长的数64 (01000000)则左移两位后值变为0

 

右移运算:移到右端的低位被舍弃,对无符号数,高位补0.

               对于有符号数,正数还是补零,但是负数的话,符号位原来是1,则左移移入0还是1,取决于计算机系统

               移入0的称为逻辑右移,移入1的称为算术右移

 

循环移位:假设整数问为2字节

               1.将a的右端n位先放到b中的高n位中。b=a<<(16-n)

               2.将a右移n位,其左面高位n位补0.     c=a>>n

               3.将c与b进行按位或运算                    c=c|b

抱歉!评论已关闭.