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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ashinfree1204 中级黑马   /  2014-7-21 21:46  /  1741 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int num=60;
num & 15 =12;
int temp=60>>4;
temp & 15 =3;
其中num & 15 =12;这一步要他干嘛,int temp=60>>4;
temp & 15 =3;这一步直接可以得到结果等于3


求解答??????????????????、

14 个回复

倒序浏览
= = 这是视频那段是不。你再重新看一下视频
回复 使用道具 举报
把问题描述的更详细一些吧,亲。单就这几句代码来看,似乎都没有实际意义啊,就是考察位运算的问题,没有有疑问的地方啊,方便的话多给一些代码或完整程序。
回复 使用道具 举报
朱道研 发表于 2014-7-21 21:52
= = 这是视频那段是不。你再重新看一下视频

看了  不懂才问的
回复 使用道具 举报
依然超级赛亚人 发表于 2014-7-21 21:53
把问题描述的更详细一些吧,亲。单就这几句代码来看,似乎都没有实际意义啊,就是考察位运算的问题,没有有 ...

就是讲60转换为十六进制数
回复 使用道具 举报
得到结果等于 3 干什么…60 转十六进制,个位是 12 ,十位是 3 ,合起来是 3C
回复 使用道具 举报
num & 15 =12; 这是在干嘛
num&15都不是变量  都不能赋值的啊
回复 使用道具 举报
icris 发表于 2014-7-21 22:08
得到结果等于 3 干什么…60 转十六进制,个位是 12 ,十位是 3 ,合起来是 3C

wowo,,懂了
回复 使用道具 举报
ashinfree1204 发表于 2014-7-21 21:58
就是讲60转换为十六进制数

噢,是用移位法进行进制转换的问题啊,没看出来。呃...这个问题确实如楼上所说,最好自己再回去看看视频,三言两语解释不好,而且不如视频直观,老师讲的也好。我只能尽量说说我的理解了。

这个问题是采用间接方法将十进制数转化为十六进制数,如你所见,它是先把十进制转换为二进制(32位),因为四位二进制数表示一位十六进制数,所以在得到上面所述的二进制数的时候,把这个二进制数每四位取一次(也就是得到一位十六进制数)。那么,如何进行我前面说的取到每四位二进制数呢?就如你所看到的,用一个最低四位都是1的新的二进制数(也就是十进制数15)与刚才的那个二进制数进行按位与运算(因为与运算时,只有两个数都是1时,结果才为1,否则为0,这就保证了没有变化的取到了原来二进制数的第一个四位),得到的结果再换算成十六进制就行了(这道题中第一个得到的十六进制数就是12)。所以,num&15(这个15其实就是二进制的1111,也就是用来取二进制最低四位的数)就是为了将二进制数的每四位逐次换算成十六进制。
说了这么多,不知你能理解多少,还不行的话再看看视频慢慢体会一下,多看几遍肯定有新的认识。或者坐等其他大神更好的回复!
回复 使用道具 举报
转16进制的动作
回复 使用道具 举报
依然超级赛亚人 发表于 2014-7-21 22:55
噢,是用移位法进行进制转换的问题啊,没看出来。呃...这个问题确实如楼上所说,最好自己再回去看看视频 ...

enen,我在看看视频,
回复 使用道具 举报
看完我都没理解位移算法 >>> 这个, 求解释
回复 使用道具 举报
就是讲十进制转换为16进制。先把十进制转变为int型的二进制(32个二进制位),二进制再换成十六进制,是每四位和成一位,就像1101-0010变为16进制是前四位为C后四位为2,十六进制为C2。&15就是获取每四位的值,然后右移,就会有下一个四位,然后在&15就会获取下一个四位的值。然后没对应的四位,变为十六进制数。
回复 使用道具 举报
dingpanbo 发表于 2014-7-22 16:17
就是讲十进制转换为16进制。先把十进制转变为int型的二进制(32个二进制位),二进制再换成十六进制,是每 ...

en 懂了、、、、、、、
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马