十进制转十六进制
# 十进制转十六进制
/**
* 十进制数转十六进制数,不够指定位数就在前面补零。超过位数不截取
* @param num 十进制数
* @param digits 位数,转成多少位的十六进制数
* @return
*/
public static String decimal2Hex(Integer num,int digits){
return String.format("%0"+digits+"x",num);
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# String.format()说明
# String.format()两个重载方法
format(String format, Object…args):新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。
format(Locale locale, String format, Object… args):使用指定的语言环境,制定字符串格式和参数生成格式化的字符串。
# 占位符类型
转换符 | 转换符 | 示例说明 |
---|---|---|
%s | 字符串类型 | “值得点赞” |
%c | 字符类型 | ‘h’ |
%b | 布尔类型 | true |
%d | 整数类型(十进制) | 88 |
%x | 整数类型(十六进制) | FF |
%o | 整数类型(八进制) | 77 |
%f | 浮点类型 | 7.777 |
%a | 十六进制浮点类型 | FF.35AE |
%e | 指数类型 | 9.38e+5 |
%g | 通用浮点类型(f和e类型中较短的) | 基本用不到 |
%h | 散列码 | 基本用不到 |
%d% | 百分比类型 | %(%特殊字符%%才能显示%) |
%n | 换行符 | 基本用不到 |
%tx | 日期与时间类型 | 基本用不到 |
示例代码如下:
public static void main(String[] args) {
String str;
// %s
str = String.format("Hi,%s", "Jack");
// hi,Jack
System.out.println(str);
// %c %n
str = String.format("字母d的大写是:%c %n", 'D');
// 字母d的大写是:D
System.out.println(str);
// %b
str = String.format("布尔结果是:%b", 3 > 1);
// 布尔结果是:true
System.out.println(str);
// %d
str = String.format("50的一半是:%d", 50/2);
// 50的一半是:25
System.out.println(str);
// %x
str = String.format("100的16进制数是:%x", 100);
// 100的16进制数是:64
System.out.println(str);
// %o
str = String.format("100的8进制数是:%o", 100);
// 100的8进制数是:144
System.out.println(str);
// %f
str = String.format("50元的书打6.5折是:%f 元", 50 * 0.65);
// 50元的书打6.5折是:32.500000 元
System.out.println(str);
// %a
str = String.format("上面打折后价格的16进制数是:%a", 50 * 0.65);
// 上面打折后价格的16进制数是:0x1.04p5
System.out.println(str);
// %e
str = String.format("上面打折后价格的指数表示是:%e", 50 * 0.65);
// 上面打折后价格的指数表示是:3.250000e+01
System.out.println(str);
// %g
str = String.format("上面价格的指数和浮点数结果的长度较短的是:%g", 50 * 0.65);
// 上面价格的指数和浮点数结果的长度较短的是:32.5000
System.out.println(str);
// %d%
str = String.format("上面的折扣是:%d%%", 85);
// 上面的折扣是:65%
System.out.println(str);
// %h
str = String.format("字母A的散列码是:%h",'A');
// 字母A的散列码是:41
System.out.println(str);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# 常用标识
标识 | 说明 |
---|---|
+ | 为正数或负数添加符号 |
0 | 在数字位数不够的地方补上0 |
空格 | 在位数不够的地方补上空格 |
, | 对数字分组,三位一隔,只可以用于十进制 |
( | 使用括号将去掉负号的负数包含进来 |
# | 让十六进制的数字加上OX,八进制的数字加上o;辅助%x和%o的使用,相当于一种对数字进制的补充说明提示 |
< | 格式化前一个转换符锁描述的参数 |
- | 左对齐,不够位数的地方补上空格 |
# 十六进制转十进制
String numHex = "100000";
System.out.println(Integer.valueOf(numHex, 16));
1
2
2
上次更新: 2024/03/18, 15:55:19