数学计算十进制到二进制(JAVA)
问题描述:
我有我的算法问题的十进制数转换成二进制数,而不使用解析,这是代码的相关章节:数学计算十进制到二进制(JAVA)
public static void dtb(){
System.out.print("\nDenary number to convert?(lower than 255): "); //eight bit conversion
int num = sc.nextInt();
int decVal = 128;
int saveNum = num; //save point for the first input
int[] arr;
arr = new int[8];
do{
if (num - decVal > 0){ //binary to decimal
num = num - decVal;
arr[x] = 1;
} else arr[x] = 0;
decVal = decVal/2;
x++;
} while (decVal != 1);
System.out.print("\nBinary value of "+saveNum+" is: "+arr[0]+arr[1]+arr[2]+arr[3]+arr[4]+arr[5]+arr[6]+arr[7]);
}
x被宣布初始化静态的,因此出于观点。我也知道错误在哪里,但我无法找到正确的方法来完成它,因此寻求帮助。我也是相当新的,所以任何其他方法的帮助将不胜感激。感谢您的任何帮助。输出=(输入= 42)00101000
答
的 实施例,则需要比较num - decVal
是否大于或等于到0
。因为你有>
,你错过了这种情况,那么它等于0
,你错过了1
位。
if (num - decVal >= 0){
此外,你需要循环而decVal
不等于0
,而不是1
,否则你会错过奇数的最后一位。
} while (decVal != 0);
输出变化在于:
Binary value of 42 is: 00101010
Binary value of 43 is: 00101011
非常感谢你的工作为目的,这样一个简单的变化需求,不知道如何溜过去的我! – joescull 2014-10-08 16:39:22