黑马程序员技术交流社区

标题: 技术问题 [打印本页]

作者: ashinfree1204    时间: 2014-7-21 21:46
标题: 技术问题
int num=60;
num & 15 =12;
int temp=60>>4;
temp & 15 =3;
其中num & 15 =12;这一步要他干嘛,int temp=60>>4;
temp & 15 =3;这一步直接可以得到结果等于3


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


作者: 朱道研    时间: 2014-7-21 21:52
= = 这是视频那段是不。你再重新看一下视频
作者: 依然超级赛亚人    时间: 2014-7-21 21:53
把问题描述的更详细一些吧,亲。单就这几句代码来看,似乎都没有实际意义啊,就是考察位运算的问题,没有有疑问的地方啊,方便的话多给一些代码或完整程序。
作者: ashinfree1204    时间: 2014-7-21 21:57
朱道研 发表于 2014-7-21 21:52
= = 这是视频那段是不。你再重新看一下视频

看了  不懂才问的

作者: ashinfree1204    时间: 2014-7-21 21:58
依然超级赛亚人 发表于 2014-7-21 21:53
把问题描述的更详细一些吧,亲。单就这几句代码来看,似乎都没有实际意义啊,就是考察位运算的问题,没有有 ...

就是讲60转换为十六进制数
作者: icris    时间: 2014-7-21 22:08
得到结果等于 3 干什么…60 转十六进制,个位是 12 ,十位是 3 ,合起来是 3C
作者: doubandddk    时间: 2014-7-21 22:15
num & 15 =12; 这是在干嘛
num&15都不是变量  都不能赋值的啊
作者: ashinfree1204    时间: 2014-7-21 22:20
icris 发表于 2014-7-21 22:08
得到结果等于 3 干什么…60 转十六进制,个位是 12 ,十位是 3 ,合起来是 3C

wowo,,懂了
作者: 依然超级赛亚人    时间: 2014-7-21 22:55
ashinfree1204 发表于 2014-7-21 21:58
就是讲60转换为十六进制数

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

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

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

en 懂了、、、、、、、




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2