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