写点什么

Java 中二进制转换的多种方法

作者:秋名山码民
  • 2022 年 7 月 10 日
  • 本文字数:950 字

    阅读完需:约 3 分钟

方法一:Integer.toBinaryString(num)

// 将数字转换成字符串Integer.toString(num);  // 将数字转换成二进制 Integer.toBinaryString(num); // 将数字转换成八进制 Integer.toHexString(num); // 将数字转换成十六进制Integer.toOctalString(num); 
复制代码


import java.util.*;
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt();
//write your code here...... System.out.println(Integer.toBinaryString(num)); }}
复制代码

方法二:Integer.toString(num, 2)

Integer.toString(num,2) //将num转换为2进制
复制代码


import java.util.*;
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt();
//write your code here...... System.out.println(Integer.toString(num, 2)); }}
复制代码

方法三:手动实现

使用方法如下:通常十进制转其他进制使用辗转相除法来求解(除到结果为 1 停止),转换结果为最后的商(1)与过程中余数的倒叙结果。


如:例如 302302/2 = 151 余 0151/2 = 75 余 175/2 = 37 余 137/2 = 18 余 118/2 = 9 余 09/2 = 4 余 14/2 = 2 余 02/2 = 1 余 0 故二进制为 100101110


import java.util.*;
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int num = scanner.nextInt();
//write your code here...... fun(num); } public static void fun(int tar) { int temb = tar / 2; int temp = tar % 2; if(temb >= 1){ fun(temb); } System.out.print(temp); }}
复制代码

补充

额外补充 :适用于 8 进制和 16 进制但不适用于二进制方法使用方法如下:


// %d表示将整数格式化为10进制整数System.out.printf("%d", num);// %o表示将整数格式化为8进制整数System.out.printf("%o", num);// %x表示将整数格式化为16进制整数System.out.printf("%x", num);// %X表示将整数格式化为16进制整数,并且字母变成大写形式System.out.printf("%X", num);
复制代码


发布于: 刚刚阅读数: 3
用户头像

卷不死,就往…… 2021.10.19 加入

2019NOIP退役成员,华为云享专家,阿里云专家博主,csdn博主,努力进行算法分享,有问题欢迎私聊

评论

发布
暂无评论
Java中二进制转换的多种方法_Java’_秋名山码民_InfoQ写作社区