用Java打印二进制格式的short

Ste*_*hen 4 java binary short

在java中输出short的二进制表示是否有内置支持?

当然,这个,建议使用Integer.toBinaryString(),它的工作原理.没有类似的Short.toBinaryString().还有其他什么吗?

更新: Integer.toBinaryString()不能像Short.toBinaryString()一样工作,如果它存在的话.

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

产生

11111111111111111000000000000000
Run Code Online (Sandbox Code Playgroud)

而我想看到

1000000000000000
Run Code Online (Sandbox Code Playgroud)

当然,切掉前16位数字很容易,但这是我的观点.这种方法应该存在.

Ósc*_*pez 6

所有短路都可以安全地转换为整数,因此只要您在进行转换之前将short值正确转换为正确的链接答案就可以正常工作int(并且这样做,我们确保开头的数字为零):

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

System.out.println(Integer.toBinaryString(0xFFFF & Short.MIN_VALUE));
=> 1000000000000000
Run Code Online (Sandbox Code Playgroud)

换句话说:所有shorts 都是整数,因此不需要定义一个单独的方法来获得a的二进制表示short.