Java 我想把十进制数转换成二进制数
我有一个错误,它说“需要数组,但找到的时间很长”和“System.out.print(BinaryNumber[j]);”发生这个错误是因为您定义了BinaryNumber的类型“long”,并且希望将其用作数组 我稍微改变一下,试试看:Java 我想把十进制数转换成二进制数,java,Java,我有一个错误,它说“需要数组,但找到的时间很长”和“System.out.print(BinaryNumber[j]);”发生这个错误是因为您定义了BinaryNumber的类型“long”,并且希望将其用作数组 我稍微改变一下,试试看: 公共类二进制文件{ 公共静态void main(字符串[]args){ int num=7; int[]二进制数组=cBtD(num); 字符串编号=”; for(int-aBinaryArray:binaryArray) 数字+=aBinaryArray;
公共类二进制文件{
公共静态void main(字符串[]args){
int num=7;
int[]二进制数组=cBtD(num);
字符串编号=”;
for(int-aBinaryArray:binaryArray)
数字+=aBinaryArray;
System.out.printf(“%d numri decimal=%d binar”,num,Integer.parseInt(数字));
}
私有静态int[]cBtD(int num){
int i=0;
int temp[]=新int[7];
int二进制数[];
while(num>0){
温度[i++]=num%2;
num/=2;
}
binaryNumber=新整数[i];
int k=0;
对于(int j=i-1;j>=0;j--){
二进制数[k++]=temp[j];
}
返回二进制数;
}
}
或者,您可以简单地使用以下方法将十进制转换为二进制:
Integer.tobinarysting();
或者这个:
Integer.toString(n,2);
所有数字本质上都是二进制的。但是,是否以二进制、十六进制或八进制显示它们只是一个表示问题。这意味着您要将它们打印为字符串。即使您执行以下操作:
public class Binar{
public static void main(String[] args){
int num = 7;
long Binary = cBtD(num);
System.out.printf("%d numri decimal = %d binar" , num, Binary);
}
public static long cBtD(int num){
long BinaryNumber = 0;
int i = 0;
long reminder;
while(num > 0){
reminder = num % 2;
num /= 2;
++i;
}
for (int j = i - 1; j >= 0; j--) {
System.out.print(BinaryNumber[j]);
}
return BinaryNumber;
}}
因此,要将它们转换为二进制字符串,只需在除以2(通过余数运算符)后将余数前置到字符串
此错误背后的原因是,您已将
BinaryNumber
变量定义为long
,并且它不是数组。但您正试图像访问数组一样访问它。请在下面检查我的修改答案:
int n = 11;
String s = "";
s = (n%2) + s; // s = "1"
n/=2; // n == 5
s = (n%2) + s; // s = "11"
n/=2 // n == 2
s = (n%2) + s; // s = "011";
n/=2 // n == 1
s = (n%2) + s; // s = "1011";
n/=2; // n == 0
n == 0 so your done.
return s and print it.
您应该遵循,例如,
Binary
应该是Binary
,BinaryNumber
应该是BinaryNumber
。另外,在循环中连接字符串时,最好使用StringBuilder::append
而不是直接连接String
。欢迎!如果对你有帮助,请投票支持我。谢谢
int n = 11;
String s = "";
s = (n%2) + s; // s = "1"
n/=2; // n == 5
s = (n%2) + s; // s = "11"
n/=2 // n == 2
s = (n%2) + s; // s = "011";
n/=2 // n == 1
s = (n%2) + s; // s = "1011";
n/=2; // n == 0
n == 0 so your done.
return s and print it.
public class Binar {
public static void main(String[] args) {
int num = 7;
String Binary = cBtD(num);
System.out.printf("%d numri decimal = %s binar", num, Binary);
}
public static String cBtD(int num) {
String BinaryNumber = "";
long reminder;
if (num == 0) {
return "0";
}
while (num > 0) {
reminder = num % 2;
BinaryNumber = String.valueOf(reminder).concat(BinaryNumber);
num /= 2;
}
return BinaryNumber;
}
}