(Java)无法转换为十六进制

时间:2015-11-19 20:54:40

标签: java binary hex octal

我的任务是:编写一个应用程序,打印十进制数的二进制,八进制和十六进制等效表 在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.我不知道如何修复它所以任何帮助都会很棒。

谢谢!

1 个答案:

答案 0 :(得分:0)

你有一个随机引用h%16,据我所知,没有分配。我认为你打算把它读作b%16。我不确定您的代码是如何编译此错误的。

通过此修复,当x = 256时,我得到十六进制= 100。