永发信息网

关于C语言移位的问题

答案:3  悬赏:70  手机版
解决时间 2021-02-08 18:30
不理解《深入理解计算机系统》中的一段话:
“对于一个由w位组成的数据类型,如果要移动k>=w位会得到什么结果呢?......C语言标准很小心地规避了说明在这种情况下该如何做。在许多机器上,当移动一个w位的值时,移位指令只考虑位移量的低log 2 w位(2是底数,格式不知道怎么打不出来),因此实际上位移量就是通过计算k mod w得到的。“

不理解的地方是:
①"移位指令只考虑位移量的低log 2 w位“,是什么意思?是不是说不管左移还是右移,都会从低log 2 w位开始?

②“当移动一个w位的值时,移位指令只考虑位移量的低log 2 w位”怎么推论出来“===>因此实际上位移量就是通过计算k mod w得到的。”?

财富值不多了,请大家谅解!
最佳答案
只考虑位移量的log2w的意思是,如果把位移量k换算成二进制的话,比如说,w为32,log2w就是5,k为32,换算成二进制就是100000,也就是只考虑后5位,这不就相当于k对m取余么,所以下面一句也就可以理解了。。我以为举个例子会比较好理解的。。下面还是附上我整个的思考逻辑吧。。

当移动一个w位的值时,移位指令只考虑位移量的低log 2 w位
c语言中规定的w位数一般为8、16、32、64。
假设k的低log 2 w位的值为u
那么高于log 2 w位的值显然都是w的倍数
k=n*w+u
其中n>=0,当n=0的时候,k=1的时候,k>=m
所以k mod w = (n*w+u) mod w = u
全部回答
右移有分逻辑右移和算术右移。左移不存在逻辑左移和算术之分。算术右移指的是当符号位是1时,右移的时候补1,符号位是0时补0. 逻辑右移则全部补0 java语言有逻辑右移>>> 算术右移>> c的话,语言本身未规定右移类型,跟编译器有关。gcc好像右移是算术右移,不存在逻辑右移。 msvc编译器还没试过。
如果是一个w位的二进制数,如果要移动k>=w位,移动多少位后面补多少0,所以结果为0
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
绿山缘茶艺馆怎么去啊,我要去那办事
一次吃100个安乃近片会怎么样?能死么?不能死
窗帘大师皇朝馆地址在什么地方,想过去办事
有个电视剧 富豪爸爸用钱羞辱女儿男友 可是对
【面首是什么意思】英伦面首已销魂西蜀夫人有
王运良供销土产日杂这个地址在什么地方,我要
我怎么用手机里面的话费购买点卡 ?
虞姬的介绍?
三品堂茶艺馆地址在什么地方,想过去办事
如题,带上耳塞是通过阻断噪声的传播来控制噪
高效速热铝合金散热片和高效速晶的区别
怡清茶庄地址在哪,我要去那里办事
【客气话怎么说】收礼时客气话怎么说啊
小白求教,华为USG6306防火墙怎样做带宽策略
东风水彩地址在哪,我要去那里办事
推荐资讯
为什么在美国有十多万苗族?
安装CAD2010提示插入光盘
弥联家电超市地址有知道的么?有点事想过去
艾尚佳窗帘地址有知道的么?有点事想过去
我腌的黄瓜表面长了一层毛.怎么回事呢?
雀帝4真人版(好像是)当中,秘书的名字叫什
冬笋鱿鱼汤的做法,冬笋鱿鱼汤怎么做好吃,冬
凌云照相地址有知道的么?有点事想过去
从滨州市到福建的快递费需多少钱
佛雕艺术馆地址在什么地方,我要处理点事!
雲璟美甲美睫怎么去啊,我要去那办事
为什么我总是很在意别人对我的看法,我如何才
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?