黑马程序员技术交流社区
标题:
关于进制转换问题
[打印本页]
作者:
王龙
时间:
2012-10-20 21:49
标题:
关于进制转换问题
* 十进制--二进制
*/
public static void toHex(int num){
char[] chs={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(int x=0;x<chs.length;x++){
int temp=num&15;
System.out.println(chs[temp]);
num=num>>>4;
}
}
}
我不明白num>>>4是什么意思,求解
作者:
梁枝武
时间:
2012-10-20 22:05
>>>这是位运算符,这里按二进制位右移4位啊
作者:
秦松
时间:
2012-10-20 22:06
>>>是位运算符,>>>4是向右移动4位,也就是除以2的4次方
作者:
打工人
时间:
2012-10-20 22:06
本帖最后由 冯海霞 于 2012-10-20 22:18 编辑
目测。。。你这是转换成十六进制。
num=num>>>4;
这句话的意思是num无符号右移4位。(不是四个二进制位才能表示一个十六进制位吗,所以转换成十六进制就是获取4个2进制位,4位一组4位一组,获取的方式就是先跟15做与运算,得到第一组。然后再通过右移4位之后跟15做与运算得到第二组。。类推下去。由于>>>是无符号右移,即每次移位后都在最高位补0,方便于正数和负数使用)
作者:
秦松
时间:
2012-10-20 22:08
<<是左移,2<<3 就是2乘以2的3次方 也就是2*8=16 这个运算方法java运行时 比2*8的速度要快
作者:
葬天
时间:
2012-10-20 22:09
将num的二进制形式
无符号
右移4四位
无符号 与有符号右移 的区别 是无符号始终补零
作者:
王龙
时间:
2012-10-20 22:56
非常感谢大家的帮助,{:soso_e100:}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2