| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 887 人关注过本帖
标题:求助右移运算的问题
只看楼主 加入收藏
zalinzhang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-8-25
收藏
 问题点数:0 回复次数:2 
求助右移运算的问题
在书上看到这样一句话:右移后的值与0X0F进行按位与运算,可以舍弃任何的符号位扩展。但我没想明白,想请高手详细讲解一下。
搜索更多相关主题的帖子: 运算 
2004-08-26 04:33
Anstey
Rank: 1
等 级:新手上路
帖 子:94
专家分:0
注 册:2004-4-14
收藏
得分:0 

首先,for bit operation

>> 表示 sign fill, 意思是在移位(shifting)以后,用符号填充,比如 1001 0100 right shift(>>) 4 bit. 就变成 1111 1001

>>>表示 zero fill 显然是用0填充 例如 1001 0100 right shift(>>>) 4 bits, 变成 0000 1001

那么这句话的意思就已经明确了,

//下面不是JAVA CODE, 只是这样写清楚一点

step 1, 1001 0100 >> 4  得出 1111 1001

step 2, 1111 1001 & 0000 1111 (0x0f) 得出 0000 1001 ,意思就是把用sign fill得出 1 都变成0,复制后面的4个bits

1 1 1 1 1 0 0 1

& 0 0 0 0 1 1 1 1

--------------------------------

0 0 0 0 1 0 0 1

其实这样做法和用>>>的结果相同 :)


Anstey. Cheers. I love CAPPUCCINO~~
2004-08-26 16:19
zalinzhang
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2004-8-25
收藏
得分:0 

谢谢,我看明白了。

现在想一下,对这个问题的疑问主要出在对0X0F的理解上,我对16进制和2进制的数字都不是很熟悉,我不知道0X在2进制上应该怎么表示,所以会出现疑问。现在明白了,再次感谢。

2004-08-27 08:54
快速回复:求助右移运算的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026002 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved