十进制整数转化十六进制
一、内容
十进制 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 }
三、运行效果