C语言中,与2乘左移,与2除右移,这个是啥意思,

问题描述:

C语言中,与2乘左移,与2除右移,这个是啥意思,
1个回答 分类:综合 2014-12-01

问题解答:

我来补答
这句话的意思就是: 对一个数实施左移操作=对这个数×2; 对一个数实施右移操作=对这个数÷2.
这个是计算机基本的二进制操作,因此不仅仅局限于C语言, 事实上绝大多数计算机编程语言都支持这个操作.
理解很容易:
一个(十进制的)数,在电脑里面都可以按二进制表示. 比如数字8, 二进制就是1000. 左移一位,1000 > 1 = 0100 = 4, 就是8÷2.
一个十进制a(这里先以正整数为例说明), 总可以表示成: a = a[n-1]*2^(n-1)+a[n-2]*2(n-2) + . a[1]*2^1 + a[0]+2^0; 这里a[n-1].a[0]的取值范围就是0或1,就是一个二进制数各个位上权系数. 假设a[i] a[i+k]; 它对整个数的贡献值,从2^i -> 2^(i+k) = 2^i × 2^k, 二进制的每一位都这样操作,因此这个数就被放大了2^k倍.当k=1的时候,就是×2;同理右移就是÷2^k.
 
 
展开全文阅读
剩余:2000
上一页:函数急