A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 悟佛修道 高级黑马   /  2013-5-17 00:37  /  2551 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 悟佛修道 于 2013-5-17 09:20 编辑



这里一直没想明白,求解,谢谢!

十六进制位运算疑惑点.png (242.31 KB, 下载次数: 0)

十六进制位运算疑惑点.png

评分

参与人数 1技术分 +1 收起 理由
Sword + 1 楼主,你可以整理一下,看着有点乱.

查看全部评分

8 个回复

倒序浏览
本帖最后由 神之梦 于 2013-5-17 00:52 编辑

俺的画图功底有限{:soso_e127:}


评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
{:soso_e103:}以前都不知道逛论坛,遇到的问题都保存下来了。{:soso_e103:}
回复 使用道具 举报
恩,这个是毕老师画的图,我怕表达不准确,所以直接在图上标注提问了,看着凌乱,望谅解。
回复 使用道具 举报
这个图就不给你解释了,给你解释一下转换的思路。
为什么&15呢,4个2进制为一个16进制,因为15的二进制是1111,正好是4位,&上1111就可以求出这个数的后四位的16进制了,竟然这四位已经求玩,所以就要后移啊,再求下个四位的二进制,直到全是0为止。所以求十六进制就是四位四位的转换,当有超过十的时候,还要-10+'a',在强转为char型。

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

回复 使用道具 举报
0000 1111和1111 0000这两个二进制数是不一样的。
如果你非要用高八位去与运算也不是不行啊。不过就不是&15了而是&240,然后把与后的结果再向右移四位。这样和先右移四位再与上15的结果是一样的。

1111 0000 & 240  然后结果>>>4  得到的结果和 1111 0000 先>>>4后的结果再&15是一样一样的。你仔细算一下我这两个运算式,就能明白自己的不解之处了
回复 使用道具 举报
神之梦 发表于 2013-5-17 00:37
俺的画图功底有限

啊!你的意思是,我们在直接四位四位的画 然后按照1 2 4 8换算十六进制的时候,实际上都是往右移了四位,然后每次其实都是取的低四位,所以就是1 2 4 8?晕,:L我似乎明白了,我说怎么老是想不通,太感谢了,谢谢你!{:3_57:}

也谢谢各位的回答。:)
回复 使用道具 举报
悟佛修道 发表于 2013-5-17 09:07
啊!你的意思是,我们在直接四位四位的画 然后按照1 2 4 8换算十六进制的时候,实际上都是往右移了四位, ...

每次&15就是在取低四位,取完一个低四位后,右移四位,就把右移前所谓的高四位变成了低四位。楼主只要明白了&15就是在取一个数的低四位就很好理解了。
发现我昨晚画得图说的也不是很清楚,没办法那时候真想睡了,但看到一个我似乎可以解决的问题,就试下看能不能解释清楚,希望那图楼主知道怎么看...
回复 使用道具 举报
神之梦 发表于 2013-5-17 10:30
每次&15就是在取低四位,取完一个低四位后,右移四位,就把右移前所谓的高四位变成了低四位。楼主只要明 ...

我看明白了的,谢谢你。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马