2013-11-20 4 views
3

Есть ли встроенная поддержка для вывода двоичного представления короткой в ​​java?Печать короткого двоичного формата в Java

Существует, конечно, this, в котором рекомендуется использовать Integer.toBinaryString(), который работает. Нет сопоставимого Short.toBinaryString(). Есть ли что-нибудь еще?

Update: Integer.toBinaryString() не совсем работает так, как Short.toBinaryString() будет работать, если он существовал.

public static void main(String[] args) { 
    System.out.println(Integer.toBinaryString(Short.MIN_VALUE)); 
} 

производит

11111111111111111000000000000000 

, тогда как я хотел бы видеть

1000000000000000 

Конечно, это достаточно легко отрубить первые 16 цифр, но это своего рода моей точки. Этот метод должен существовать.

ответ

6

Все шорты можно смело отбрасывать целые числа, поэтому связанный ответ будет работать нормально до тех пор, как вы правильно преобразовать значение short в int перед выполнением преобразования (и при этом, мы, убедившись, что цифры в начало обнулено):

short x = 10; 
System.out.println(Integer.toBinaryString(0xFFFF & x)); 
=> 1010 

System.out.println(Integer.toBinaryString(0xFFFF & Short.MIN_VALUE)); 
=> 1000000000000000 

Говоря иначе: все short s являются целыми числами, так что нет необходимости определять отдельный метод для получения двоичного представления в short.

+0

Не совсем, см. Обновление выше. –

+0

@SteveCohen, вы правы. Требуется немного возиться, см. Мой обновленный ответ –

+0

Ну, с этой поправкой я назову это хорошо. Нет ничего лучше. Хотелось бы, чтобы изобретатели java не так быстро уволили беспризорников. –

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