在 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

换句话说:所有shorts 都是整数,因此无需定义单独的方法来获取short的二进制表示。

【讨论】:

@SteveCohen 是的。需要一些摆弄,请参阅我的更新答案 好吧,有了这个修正,我会称之为好的。没有比这更好的了。我希望 java 的发明者没有这么快就驳回无符号数。 @SteveCohen 同意,他们这样做是为了简化语言,但无符号值足够有用,它们应该是语言的一部分 嘿,尝试与传统 C 进行互操作。:-) 欢迎来到我的世界。

以上是关于在 Java 中以二进制格式打印一个简短的的主要内容,如果未能解决你的问题,请参考以下文章

如何在 KDB 中以二进制格式保存列表/矩阵?

在python中以二进制格式读取任何文件(图像,mp3,或视频,或文本)

在jsf中以2点十进制格式显示数字

如何在java(android)中以posix格式打印本地时区?

在 Angular 中以德语格式输入十进制数“有逗号”效果不佳

java语言有几种数据类型?怎样申明和赋值??