十进制到二进制转换器
问题描述:
我想在java中创建一段代码,它将十进制值转换为二进制而不使用内置二进制转换器命令。十进制到二进制转换器
但它不工作...
public class MainFrame {
public static void binary(int number) {
String result = new String();
int binaryValues[] = {1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1};
if (number == 0) {
result = result + "0";
} else if (number == 1) {
result = result + "1";
} else {
for (int i = 0; i < 11; i++) {
while(number >= binaryValues[i]) {
if (number % binaryValues[i] >= 0) {
result = result + "1";
number -= binaryValues[i];
} else {
result = result + "0";
// number -= binaryValues[i];
}
}
}
}
System.out.println(result);
}
public static void main(String[] args) {
binary(5);
}
}
答
取下else块这一行:
number -= binaryValues[i];
原因:如果数字不大于2 ñ ,那么你想添加0
并且不想减去2 n。
并删除while
声明,这是没有必要的(除非所有数字都小于2 )。只要保持for循环和if/else。
和终于,if条件不是模而是负。对我来说,以下工作:
for (int i = 0; i < 11; i++) {
if (number - binaryValues[i] >= 0) {
result = result + "1";
number -= binaryValues[i];
} else {
result = result + "0";
}
}
答
对于整数> = 0:
public class DecimalToBinary {
public static void main(String[] args) {
int dec = 127;
StringBuilder binary = new StringBuilder();
do {
binary.insert(0, dec % 2);
dec /= 2;
} while (dec != 0);
System.out.println(binary.toString());
}
}
答
import java.util.Scanner;
public class BinaryConversion {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a decimal number: ");
int numerator = input.nextInt();
int num = numerator;
boolean runLoop = true;
String digit = "";
while(runLoop){
int bin = numerator % 2;
numerator = (numerator/2);
digit= bin+digit;
if (numerator == 0) {
break;
}
}
input.close();
System.out.println("The binary value of "+num+" is "+digit);
}
}
是这个家庭作业? – Bozho 2011-01-31 09:27:17
看起来像功课,你有一个代码。请解释你到目前为止所了解的内容。 – 2011-01-31 09:29:22
它不是功课,我只是对如何做它感兴趣 – java 2011-01-31 09:36:24