首页
社区
课程
招聘
[旧帖] [求助]关于逻辑移位的问题 0.00雪花
发表于: 2007-2-26 14:49 3696

[旧帖] [求助]关于逻辑移位的问题 0.00雪花

2007-2-26 14:49
3696
请哪位大侠给通俗易懂的解释下:
shr和shl。
比如说:shr edx 2
假设edx=0000000E
逻辑右移以后edx的值是多少?为什么,是怎么得出的呢?
小弟不才,望赐教。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
2
你把他变成2进制
然再移就可以
比如
0000000E=二进制00001110
shr是向右(right)移的意思,二进制00001110右移2位即000011
mov edx,E
shr edx 2
so   edx=00000003
2007-2-26 15:06
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
3
说得更直观点
向右移几位就是从右边起去掉几位,
向左移几位就是从右边起填充几位0,
mov edx,0E    ///edx=00001110
shr edx,2     ///edx=000011    从右方向去掉2位,即去掉10
所以右移后edx=03h   

mov edx,3     ///edx=00000011
shl edx,2     ///edx=00001100  从右边方向加上两个0
所以左移后 edx=0Ch
2007-2-26 15:31
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
谢谢fonge兄,终于懂了
2007-2-26 16:13
0
雪    币: 214
活跃值: (10)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
5
再问个问题,逻辑位移在算法中具体是干什么的?
比如说:edx中存放的是注册码的位数
现在要求edx逻辑右移2,即shr edx 2,同样假设edx=0E,
计算的结果是edx=00000003,
那么这样做的目的是什么,有什么用?得到的值“3”代表什么?
能解释下吗?
2007-2-26 17:51
0
雪    币: 263
活跃值: (10)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
6
仅仅是一种运算而已,没有别的意思,
跟加减乘除一样!
那个'3'就要的结果罗!
2007-2-27 10:40
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
哦 懂了 谢谢fonge兄
2007-2-27 11:42
0
游客
登录 | 注册 方可回帖
返回
//