我想将整数转换为二进制字符串.我选择使用java允许的本机函数Integer.toBinaryString(n).但不幸的是,这会从我的输出中减少前导零.让我们举例说,我给输入18,它给我输出10010但实际输出应该是010010.将int转换为字符串是否比编写用户定义的函数更好/更短?或者我在这里做错了什么?
int n = scan.nextInt();
System.out.println(Integer.toBinaryString(n));
Run Code Online (Sandbox Code Playgroud)
它假设是010010 ....
不是真的,整数类型由32位组成,所以它应该是:
000000000000000000000000010010,java不会打印该信息,左边的零在这种情况下与该数字的大小无关.
所以你需要自己附加前导零,因为该方法返回一个字符串,你可以格式化:
String.format("%32s", Integer.toBinaryString(18)).replace(' ', '0')
Run Code Online (Sandbox Code Playgroud)
或者在你的情况下使用6位
String.format("%6s", Integer.toBinaryString(18)).replace(' ', '0')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3281 次 |
| 最近记录: |