十进制整数转化十六进制
一、内容
十进制 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:0310 */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,在转化为 String54 return hexadecimal.reverse().toString();55 }56 }
三、运行效果