黑马程序员技术交流社区
标题:
无符号右移
[打印本页]
作者:
zhxueqiu
时间:
2013-6-22 00:29
标题:
无符号右移
大侠们
怎样把十进制数43用>>>右移成16进制.
作者:
ytblght55
时间:
2013-6-22 01:39
:L:L传智618的同学报上名字///
作者:
ytblght55
时间:
2013-6-22 02:05
本帖最后由 ytblght55 于 2013-6-22 02:09 编辑
/*
* 需求:十进制数43用>>>右移成16进制.
* 思路:定义一个转换的方法tohex(int num)十进制的值,16进制是进行倒除法取余数,所用将num&15用temp记录该值
用temp记录该值,判断&这个数是否超过9,超过将其强转成字符打印出来.
步骤:
1,定义一个方法取名为tohex
2,转换成16进制是进行倒除法,取余数,所用将num&15用temp记录该值
3,16进制超过9使用A-F来表示的,所以我们要判断temp是否超过9如果超过强制转换成字符
4,运行结果你要到倒着看才是对的哦,没有将数值倒置
5,你可以把我注释掉的里面的代码放开就可得得到一个比较直观的值(这个老师还没讲到,我注释掉了)
* */
public class Test14 {
public static void main(String[] args) {
// TODO Auto-generated method stub
toHex(43);
}
public static void toHex(int num){
//StringBuffer sb = new StringBuffer();
for (int x=0 ;x<8 ;x++ )//一组二进制数是00000000,定义循环的次数小于8
{
int temp = num & 15;//将num&15用temp来记录该值
if (temp > 9)//因为16进制10到15是用字符A-F表示,通过if来判断
System.out.print((char)(temp-10+'A'));//强制转换成字符型,输出
//sb.append((char)(temp-10+'A'));
else
System.out.print(temp);//如果小于9直接输出
//sb.append(temp);
num = num >>>4;//无符号右移4位
}
//System.out.println(sb.reverse());
}
}
<FONT color=yellowgreen>//希望能帮到你!!!
</FONT>
复制代码
作者:
zhxueqiu
时间:
2013-6-24 00:01
ytblght55 发表于 2013-6-22 01:39
传智618的同学报上名字///
张雪秋 你谁呀。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2