十进制整数转化十六进制

十进制整数转化十六进制

一、内容

    十进制 int 范围内的正整数(0-2147483647)转化为相应的十六进制数。

二、源代码

 1 package cn.com.zfc.day010;
 2 
 3 import java.util.Scanner;
 4 
 5 /**
 6  * 十进制int类型的正整数转化为相应的十六进制数
 7  * 
 8  * @author zfc
 9  * @date 2017年11月5日 上午10:10:03
10  */
11 public class DecimalIntegerToHexadecimal {
12     public static void main(String[] args) {
13         Scanner scan = new Scanner(System.in);
14         System.out.println("请输入一个正整数(int范围内):");
15         int n = scan.nextInt();
16         scan.close();
17         System.out.println("相应的十六进制是:" + decimalToHexadecimal(n));
18     }
19 
20     /**
21      * 
22      * @param decimal:要转化的十进制数
23      * @return hexadecimal:相应的十六进制数
24      */
25     private static String decimalToHexadecimal(int decimal) {
26         // 存储相应的十六进制数
27         StringBuffer hexadecimal = new StringBuffer();
28         if (decimal == 0) {
29             hexadecimal.append(0);
30         }
31         // 注意 for 循环的条件,每次的步长计算
32         for (; decimal != 0; decimal /= 16) {
33             // 求 n%16 做为余数,截取尾数
34             int yushu = decimal % 16;
35             // 判断尾数对应十六进制中的哪一个数字
36             if (yushu == 10) {
37                 hexadecimal.append('A');
38             } else if (yushu == 11) {
39                 hexadecimal.append('B');
40             } else if (yushu == 12) {
41                 hexadecimal.append('C');
42             } else if (yushu == 13) {
43                 hexadecimal.append('D');
44             } else if (yushu == 14) {
45                 hexadecimal.append('E');
46             } else if (yushu == 15) {
47                 hexadecimal.append('F');
48             } else {
49                 // 如果余数小于10则,就是余数本身
50                 hexadecimal.append(yushu);
51             }
52         }
53         // 记得反转 StringBuffer,在转化为 String
54         return hexadecimal.reverse().toString();
55     }
56 }

三、运行效果

posted @ 2017-11-05 10:25  勇闯天涯zfc  阅读(1256)  评论(0编辑  收藏  举报