2013-02-25 2 views
-1
int diny6h = Integer.parseInt(Integer.valueOf(diny6).toString(), 10); 
    int diny7h = Integer.parseInt(Integer.valueOf(diny7).toString(), 10); 
    diny6h=diny6h-32; 
    diny7h=diny7h-32; 
    System.out.println(diny6h + " + " + diny7h); 
} 

Входящая: diny6=30diny7=20Преобразование из Int в Hex не работает в Java

напечатал: diny6h=16diny7h=00

Что я хочу: diny6h=10diny7h=00

Что я делаю неправильно здесь?

EDIT: ну ... цифры отправляются как hexadezimals и принимаются как десятичные числа, потому что другие числа в блоке (не diny6 и 7, но diny1 to diny5) необходимы как hexadezimals. но diny6 и 7 нужны как десятичные числа, но им не удается получить их так, как я хочу, я хочу отправить 35 (шестнадцатеричный), который он приходит, как 53 (dec), и должен быть вычислен как 10 (dec). Тот же вопрос: хотите отправить 20 (HEX) речь идет как 32 (дес) и должен печататься как 0

Короче:

Я посылаю 35, полученные в 53, но мне нужно 35 к уменьшите его на 20 и получите 15 ... как я это делаю?

EDIT:

Я извиняюсь за мой вчера cofusing. Чего мне нужно, чтобы преобразовать мое полученное значение в BCD-номер ... ничего с hex ^^ я должен удалить этот вопрос сейчас?

+2

Чего вы действительно хотите достичь? 30 десятичных чисел не 10 hex, а 20 десятичных чисел не 00 hex –

+0

Я считаю, что это не точная распечатка. –

+0

Вы преобразовываете целые числа в шестнадцатеричные и используете переменные 'int' для хранения результата? Как вы собираетесь представлять «числа» от A до F? Кроме того, в чем смысл этой строки: Integer.parseInt (Integer.valueOf (diny7) .toString(), 10); '? Предполагая, что 'diny7' является строкой, вы затем конвертируете строку в целое число в строку целых чисел - да? – Thomas

ответ

0

Был ли я сам виноват, неправильно понял смысл того, что я хотел сделать, и проигнорировал некоторые связанные с оборудованием требования. Вопрос совершенно неправильный asekd.

2

ничего не случилось.

для diny6:

30(hex) - 32(dec) = 30(hex) - 20(hex) = 10(hex) = 16(dec)

аналогично для diny7.

целые по умолчанию печатаются в десятичной системе счисления, то почему вы получите 16. если вы хотите напечатать номер в шестнадцатеричном формате сделать что-то вроде:

System.out.println(String.format("%x",diny6)); 

обновление:

я боюсь вы не полностью понимаете математические основы. hex и dec являются просто представлениями, переменная int не является десятичной или шестнадцатеричной - это всего лишь число.
1. прочитайте строковое представление числа.
2. выполняйте любые вычисления, которые вам нужны (и не заботитесь о себе с базой на этом этапе).
3. напечатайте результат как десятичный или шестнадцатеричный, используя строки формата.
4. ознакомьтесь с разделом.

+0

Я хочу иметь 10 в конце ... omg .. я не могу мыслить ясно atm ... – Ekonion

+0

тогда вы должны напечатать номер как hex, см. обновленный ответ – yurib

+0

в порядке, затем theyre напечатано как hex, но мне нужны номера для обновления текстового поля и сделать небольшую математику. – Ekonion

Смежные вопросы