- public class Demo {
- public static void main(String[] args) {
- toBin(-6);
- toHex(-60);
- }
- // 十进制-->十六进制
- public static void toHex(int num) {
- StringBuilder sb = new StringBuilder();// 定义一个容器,用于存储数据
- char[] chs = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',
- 'B', 'C', 'D', 'E', 'F' };
- while (num != 0) {// 如果数值不为0,则循环
- int temp = num & 15;// 取出num二进制中的最低4位
-
- // if (temp > 9) {
- // char ch = (char) (temp - 10 + 'A');//将大于9的数转成相应的字母
- // sb.append(ch);
- // } else {
- // sb.append(temp);// 将最低4位的十进制存入容器中
- // }
- sb.append(chs[temp]);
- num = num >>> 4;// 将进制无符号右移4位
- }
- System.out.println(sb.reverse());// 将容器中的数据反转再打印
- //结果:FFFFFFC4
- }
- // 十进制-->二进制
- public static void toBin(int num) {
- StringBuilder sb = new StringBuilder();// 定义一个容器,用于存储数据
- while (num != 0) {
- int temp = num & 1;// 取出进制的最后一位
- sb.append(temp);// 将去到的值存入容器
- num = num >>> 1;// 将进制无符号右移一位
- }
- System.out.println(sb.reverse());// 将容器中的数据反转再打印
- //结果:11111111111111111111111111111010
- }
- }
复制代码 |
|