这是家庭作业的帮助,但我已经完成了大部分工作,但我仍然坚持一些细节。 请记住,我不能使用数组或方法,只允许选择性语句和循环。
到目前为止,我正在获得正确的二进制值作为double,但是当我尝试将double转换为int以进行正确显示时,它会触发较长的二进制数,因为它会将它们显示为1.00101011E8 for例如,那么对于那些较大的二进制数,当我尝试将它转换为整数时,它当然会弄乱它。我无法弄清楚如何正确显示二进制文件。
任何帮助将不胜感激。奇怪的是,有时程序会为之前工作过的相同数字吐出完全无意义,然后当我重新运行程序时,我再次得到正确的值。据我所知,所有值都在循环中正确初始化。 这是代码,我为这个烂摊子道歉,我是一个绝对的初学者。
import javax.swing.JOptionPane;
public class Experiment {
public static void main(String[] args) {
int dec;
int binary;
int temp;
int digit;
double useless;
int k = 5;
int count = 0;
int state;
int current;
int i;
int q;
do {
String input = JOptionPane.showInputDialog (null,"Enter Decimal to be converted to Binary Number");
dec = Integer.parseInt(input);
int power = 0;
double full = 0;
// size determination loop stored in count
temp = dec;
while (k!=0) {
k = temp/2;
temp = k;
count = count + 1;
}
current = dec;
for (i = 0; i < count; i++) {
binary = current%2;
q = current/2;
current = q;
full = full +(binary * (Math.pow(10,power)));
power = power + 1;
}
System.out.println("Size is "+count);
System.out.println("The answer is "+full);
System.out.println("If you would like to exit press 1.");
} while (dec != 1);
}
}