Print a short in binary format in Java

binary, java, short

Solution

All shorts can be safely cast to integers, so the linked answer will work fine as long as you correctly convert the `short` value to `int` before making the conversion (and in doing so, we're making sure that the digits at the beginning are zeroed):

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

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

To put it another way: all `short`s are integers, so there's no need to define a separate method for obtaining the binary representation of a `short`.

Problem

Is there any builtin support for outputting a binary representation of a short in java? There is of course, this, which recommends the use of Integer.toBinaryString(), which works. There is no comparable Short.toBinaryString(). Is anything else available? Update: Integer.toBinaryString() doesn't quite work the way Short.toBinaryString() would work if it existed. ``` public static void main(String[] args) { System.out.println(Integer.toBinaryString(Short.MIN_VALUE)); } ``` produces ``` 11111111111111111000000000000000 ``` whereas I would like to see ``` 1000000000000000 ``` Of course, it's easy enough to chop off the first 16 digits, but that's kind of my point. This method ought to exist.

Original source

Related problems