我的任务是:编写一个应用程序,打印十进制数的二进制,八进制和十六进制等效表 在1到256范围内。如果您不熟悉这些数字系统,请在线研究所需信息将结果放在JOptionPane.showMesaageDialog中。
我的代码目前是:
import javax.swing.*;
public class Prog3_22
{
public static void main (String args[])
{
int a;
int b;
int c;
String billybob = "Decimal "+"\tBinary"+"\tOctal "+"\tHex",binary,oct,hex;
for(int x=1;x<=256;x++)
{
binary="";oct="";hex="";
c=x;
a=x;
b=x;
while (c>0)
{
int rem= c %2;
binary=rem+binary;
c=c/2;
}//end while
while (b>0)
{
int rem= h%16;
hex=rem+hex;
b=b/16;
}
while (a>0)
{
int rem= a%8;
oct=rem+oct;
a=a/8;
}
billybob+="\n" +x+ "\t"+binary+"\t"+oct+"\t"+hex+"\t";
}//end for
JTextArea outputArea = new JTextArea (10,40);
JScrollPane scroller = new JScrollPane (outputArea);
outputArea.setText(billybob);
JOptionPane.showMessageDialog(null,scroller,null,
JOptionPane.INFORMATION_MESSAGE);
}
}
它主要起作用,只有Hex列只显示为0.我不知道如何修复它所以任何帮助都会很棒。
谢谢!
答案 0 :(得分:0)
你有一个随机引用h%16,据我所知,没有分配。我认为你打算把它读作b%16。我不确定您的代码是如何编译此错误的。
通过此修复,当x = 256时,我得到十六进制= 100。