Java операнды разной согласованности

Знаете ли вы, есть ли какое-либо утверждение правила, которое следует соблюдать в отношении возможных арифметических операций между различными представлениями? Например:7

int a = 0342342;
int b = 0x1abcdef; 
int c = a +b;
System.out.println("It prints out : "+c);

Распечатывает: 28152529 .

Результат (c) представляет собой десятичное представление сложения 2 операндов a и b.

Что если бы я хотел получить результат в определенном формате представления, отличном от десятичного?

3 ответа

Решение

Чтобы напечатать в шестнадцатеричном виде сделать это

System.out.printf("It prints out %x\n", c); 

Число 0342342 а также 0x1abcdef являются буквальными представлениями целых чисел, которые Java поддерживает для удобства разработчиков. В Java действительно есть только одно представление этого целого числа, и оно хранится в int тип без ссылки на число (например, восьмеричное или шестнадцатеричное).

По умолчанию при печати int отображается в десятичном формате.

Если вы хотите какой-то другой формат, вы должны использовать System.out.printf:

System.out.printf("Decimal: %d",c);
System.out.printf("Octal: %o",c);
System.out.printf("Hexadecimal: %x",c);

Ты можешь использовать System.out.format для того, чтобы представлять в другом формате.

Вы можете найти более подробный ответ здесь: http://docs.oracle.com/javase/tutorial/essential/io/formatting.html

Другие вопросы по тегам