在 Java 中以二进制格式打印一个简短的
Posted
技术标签:
【中文标题】在 Java 中以二进制格式打印一个简短的【英文标题】:Print a short in binary format in Java 【发布时间】:2013-11-20 21:46:57 【问题描述】:是否有任何内置支持在 java 中输出 short 的二进制表示?
当然有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 位数字很容易,但这就是我的意思。这个方法应该有的。
【问题讨论】:
【参考方案1】:所有短裤都可以安全地转换为整数,因此只要您在进行转换之前将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
的二进制表示。
【讨论】:
@SteveCohen 是的。需要一些摆弄,请参阅我的更新答案 好吧,有了这个修正,我会称之为好的。没有比这更好的了。我希望 java 的发明者没有这么快就驳回无符号数。 @SteveCohen 同意,他们这样做是为了简化语言,但无符号值足够有用,它们应该是语言的一部分 嘿,尝试与传统 C 进行互操作。:-) 欢迎来到我的世界。以上是关于在 Java 中以二进制格式打印一个简短的的主要内容,如果未能解决你的问题,请参考以下文章
在python中以二进制格式读取任何文件(图像,mp3,或视频,或文本)
如何在java(android)中以posix格式打印本地时区?