Java 十进制到二进制转换
数字系统有四种类型:二进制、八进制、十进制和十六进制,它们的基值分别为2、8、10和16。基值取决于数字系统所包含的位数。例如,十六进制数字系统包含16个数字,即0至9和A至F。因此,它的基值为16。
在本文中,我们将讨论二进制和十进制数字系统。此外,我们将编写Java程序将十进制数转换为二进制数。
二进制和十进制数字系统
二进制数字系统
二进制数字系统以0和1的形式工作。因为它只有两个数字0和1,所以它的基值为2。从电信号的角度来看,这两个位代表着真和假,或者开和关的状态。(101)2、(011)2、(111)2是二进制数字的几个示例。
通常,它用于数字设备,如计算机、智能手机、智能手表。事实上,它是在数字设备上执行的所有操作的基础。
十进制数字系统
它是最常用的数字系统。它有从0到9的10个数字。因此,它的基值为10。如果一个数字的基值没有提到,那么它被视为10。一个单独的数字具有10的幂数的权重,每个数字的权重是前一个数字的10倍。例如,1010、43110、98010等。
下表表示了前15个数字的二进制和十进制格式。
Binary | Decimal |
---|---|
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
0101 | 5 |
0110 | 6 |
0111 | 7 |
1000 | 8 |
1001 | 9 |
1010 | 10 |
1011 | 11 |
1100 | 12 |
1101 | 13 |
1110 | 14 |
1111 | 15 |
在上表中,二进制数用4位格式表示。
十进制转二进制转换
让我们了解如何将十进制数转换为二进制。
我们通过将十进制数除以二进制的基数(即2)直到商为1来将十进制格式转换为二进制格式。换句话说,我们将给定的十进制数除以2,直到该数字大于0。
示例1
将十进制数(23)转换为其二进制形式。
答案是10111。
现在,我们将看到一个Java程序,其中我们将应用上述逻辑将十六进制转换为十进制。
方法1:使用toBinaryString()方法
它是‘Integer’类的静态方法,根据基于2的底返回一个字符串值。它位于java.lang包中。
语法
Integer.toBinaryString(int var_to_convert);
参数
- Var_to_convert:要转换的值。
在以下方法中,我们将创建一个带有整数类型参数‘dec’的构造函数‘Cnvrt()’。在这个构造函数中,我们将执行转换并将值存储在字符串‘b1’中。在主方法中,我们将创建一个‘Cnvrt’类的对象,以便我们可以调用具有不同值的构造函数。
示例
public class Cnvrt {
String Cnvrt(int dec) {
// Constructor
String b1 = Integer.toBinaryString(dec);
return b1;
// returing the string stored in b1
}
public static void main(String args[]) {
Cnvrt obj = new Cnvrt();
// creating object ‘obj’
// calling the constructor using object with arguments
System.out.println("Binary value of given decimal number: " + obj.Cnvrt(50));
System.out.println("Binary value of given decimal number: " + obj.Cnvrt(25));
System.out.println("Binary value of given decimal number: " + obj.Cnvrt(10));
}
}
输出
Binary value of given decimal number: 110010
Binary value of given decimal number: 11001
Binary value of given decimal number: 1010
方法2:使用我们自己的逻辑
在这个方法中,我们将创建四个整数变量−
- ‘dec’,用于存储十进制值
-
‘b1’,用于存储转换后的二进制数
-
‘rem’,用于存储余数
-
‘rev’,用于在逆序打印余数时使用
我们将使用一个while循环,直到十进制值变为1。在这个循环中,我们将除法获取并存储余数。然后,我们将逆序排列余数。
示例
public class Cnvrt {
public static void main(String[] args) {
int dec = 23;
int b1 = 0;
int rem;
int rev = 1;
while (dec > 0) {
rem = dec % 2;
// storing remainder
dec = dec / 2;
// dividing the given decimal value
b1 = b1 + rem * rev;
// reversing the remainders and storing it
rev = rev * 10;
}
System.out.println("Binary value of given decimal number: " + b1);
}
}
输出
Binary value of given decimal number: 10111
结论
在本文中,我们了解了数字系统的类型,特别是二进制和十进制数字系统。此外,我们还讨论了两种将十进制数转换为二进制数的Java程序方法。