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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王龙 中级黑马   /  2012-10-20 21:49  /  1433 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

* 十进制--二进制
         */
        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是什么意思,求解

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

6 个回复

倒序浏览
>>>这是位运算符,这里按二进制位右移4位啊
回复 使用道具 举报
>>>是位运算符,>>>4是向右移动4位,也就是除以2的4次方
回复 使用道具 举报
本帖最后由 冯海霞 于 2012-10-20 22:18 编辑

目测。。。你这是转换成十六进制。
num=num>>>4;
这句话的意思是num无符号右移4位。(不是四个二进制位才能表示一个十六进制位吗,所以转换成十六进制就是获取4个2进制位,4位一组4位一组,获取的方式就是先跟15做与运算,得到第一组。然后再通过右移4位之后跟15做与运算得到第二组。。类推下去。由于>>>是无符号右移,即每次移位后都在最高位补0,方便于正数和负数使用)

点评

正是我需要的答案,真的很感谢  发表于 2012-10-20 22:59

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
<<是左移,2<<3 就是2乘以2的3次方 也就是2*8=16  这个运算方法java运行时 比2*8的速度要快
回复 使用道具 举报
将num的二进制形式
无符号
右移4四位

无符号 与有符号右移 的区别 是无符号始终补零
回复 使用道具 举报
王龙 中级黑马 2012-10-20 22:56:56
7#
非常感谢大家的帮助,{:soso_e100:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马