(Java) Проблемы с преобразованием в шестнадцатеричный формат

Мое задание: Написать приложение, которое печатает таблицу двоичных, восьмеричных и шестнадцатеричных эквивалентов десятичных чисел в диапазоне от 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. Я не уверен, как это исправить, поэтому любая помощь будет отличной.

Спасибо!


person barno    schedule 19.11.2015    source источник
comment
Можем ли мы увидеть образец вывода?   -  person Darwin von Corax    schedule 20.11.2015
comment
Не знал, как еще все это вставить, извините. docs.google.com/document/d/   -  person barno    schedule 20.11.2015


Ответы (1)


У вас есть случайная ссылка на h%16, которая, насколько я могу судить, не назначена. Я думаю, вы хотели, чтобы это читалось как b%16. Я не уверен, как ваш код компилируется с этой ошибкой.

С этим исправлением я получаю hex = 100, когда x = 256.

person Danielle    schedule 19.11.2015
comment
Есть еще вторая ошибка, но надо еще что-то делать. - person Joop Eggen; 21.11.2015
comment
Когда я делаю это изменение, я получаю цифры в шестнадцатеричном столбце, но я не верю, что вывод правильный. Вывод: docs.google.com/document/d/. - person barno; 21.11.2015
comment
Ваша система должна преобразовывать числа в буквы? Не похоже, что у вас есть что-то, чтобы справиться с этим. В случае x = 31, hex = 1F, в соответствии с этим конвертером . - person Danielle; 23.11.2015