本帖最后由 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>
复制代码 |