在编程中,数制转换是一个非常常见的需求。java 作为一种高级语言,提供了便捷的方法来实现 二进制(binary) 和 十进制(decimal) 之间的转换。本文将介绍 java 中二进制与十进制互转的原理与实现方式,并附上完整代码示例。
一、十进制转二进制
1.1 原理
十进制转二进制的方法通常有两种:
- 手动除以 2 取余法:不断将十进制数除以 2,将余数倒序排列。
- 使用 java 提供的封装方法:
integer.tobinarystring(int i)
1.2 示例代码
public class decimaltobinary { public static void main(string[] args) { int decimal = 42; string binary = integer.tobinarystring(decimal); system.out.println("十进制 " + decimal + " 转换为二进制为: " + binary); } }
输出:
十进制 42 转换为二进制为: 101010
二、二进制转十进制
2.1 原理
- 将二进制字符串按照权展开(即 $2^n$)求和。
- java 中可以使用
integer.parseint(string s, int radix)
方法进行转换。
2.2 示例代码
public class binarytodecimal { public static void main(string[] args) { string binary = "101010"; int decimal = integer.parseint(binary, 2); system.out.println("二进制 " + binary + " 转换为十进制为: " + decimal); } }
输出:
二进制 101010 转换为十进制为: 42
三、完整示例:交互式转换器
import java.util.scanner; public class binarydecimalconverter { public static void main(string[] args) { scanner scanner = new scanner(system.in); system.out.println("请选择操作:"); system.out.println("1. 十进制转二进制"); system.out.println("2. 二进制转十进制"); int choice = scanner.nextint(); if (choice == 1) { system.out.print("请输入十进制数字: "); int decimal = scanner.nextint(); string binary = integer.tobinarystring(decimal); system.out.println("转换后的二进制为: " + binary); } else if (choice == 2) { system.out.print("请输入二进制数字: "); string binary = scanner.next(); try { int decimal = integer.parseint(binary, 2); system.out.println("转换后的十进制为: " + decimal); } catch (numberformatexception e) { system.out.println("输入的不是有效的二进制数字!"); } } else { system.out.println("无效的选择!"); } scanner.close(); } }
四、总结
类型 | java 方法 | 示例 |
---|---|---|
十进制转二进制 | integer.tobinarystring(int) | integer.tobinarystring(42) → 101010 |
二进制转十进制 | integer.parseint(str, 2) | integer.parseint("101010", 2) → 42 |
java 提供的这些工具方法极大地简化了进制转换操作。在实际开发中,你也可以扩展思路处理其他进制之间的转换,比如八进制、十六进制等。
如需进一步扩展为支持其他进制(例如十六进制转二进制等),也可以继续使用 integer.tostring(int num, int radix)
与 integer.parseint(string str, int radix)
进行灵活转换。
以上就是java实现二进制与十进制之间互相转换的完整代码的详细内容,更多关于java二进制与十进制互转的资料请关注代码网其它相关文章!
发表评论