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