2013-11-20 47 views
3

是否有支持在java中输出短文的二进制表示的内置支持?在Java中打印二进制格式的短文

当然,有this,它建议使用Integer.toBinaryString(),它的工作原理。没有可比较的Short.toBinaryString()。还有其他的东西吗?

更新: 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小号整数,所以没有必要定义获得short的二进制表示一个单独的方法。

+0

不完全,请参阅上面的更新。 –

+0

@SteveCohen对吧。有一点小窍门是必需的,请参阅我的更新回答 –

+0

那么,通过该修正案,我会称它为好。没有比这更好的了。我希望java的发明者没有这么快就解雇未签名的。 –