十进制数字转成十六进制表示的算法
2021/12/9 11:46:42
本文主要是介绍十进制数字转成十六进制表示的算法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
public String intToComplement(int num) { StringBuilder sb = new StringBuilder(); if (num >= 0) { for (int i = 0; i < 8; i++) { int temp = num % 16; if (temp >= 10) { sb.append((char) (temp - 10 + 'a')); } else { sb.append(temp); } num /= 16; } } else { int[] a = new int[32]; a[0] = 1; num = -num; //求出原码 for (int i = 0; i < 31; i++) { int temp = num % 2; a[31 - i] = temp; num /= 2; } //求反码 for (int i = 0; i < 31; i++) { if (a[31 - i] == 1) { a[31 - i] = 0; } else { a[31 - i] = 1; } } //求补码 int carry = 1; for (int i = 0; i < 31; i++) { int x = (carry + a[31 - i]) % 2; carry = (carry + a[31 - i]) / 2; a[31 - i] = x; } for (int i = 0; i < 8; i++) { int y = 0; for (int j = 0; j < 4; j++) { y += a[31 - 4 * i - j] * (int) Math.pow(2, j); } if (y >= 10) { sb.append((char)(y - 10 + 'a')); } else { sb.append(y); } } } sb.append("x0"); sb.reverse(); return sb.toString(); }
附带一个二进制、十进制、十六进制的表格
16进制 | 10进制 | 2进制 |
---|---|---|
0 | 0 | 0000 |
1 | 1 | 0001 |
2 | 2 | 0010 |
3 | 3 | 0011 |
4 | 4 | 0100 |
5 | 5 | 0101 |
6 | 6 | 0110 |
7 | 7 | 0111 |
8 | 8 | 1000 |
9 | 9 | 1001 |
a | 10 | 1010 |
b | 11 | 1011 |
c | 12 | 1100 |
d | 13 | 1101 |
e | 14 | 1110 |
f | 15 | 1111 |
这篇关于十进制数字转成十六进制表示的算法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署