在 Java 中将 int 转换为二进制字符串表示形式?
在 Java 中将 int 转换为二进制字符串表示形式的最佳方法(理想情况下是最简单的)是什么?
例如,假设 int 为 156。其二进制字符串表示形式为“10011100”。
What would be the best way (ideally, simplest) to convert an int to a binary string representation in Java?
For example, say the int is 156. The binary string representation of this would be "10011100".
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(19)
使用内置函数:
如果您不想使用内置函数将 int 转换为二进制,那么您也可以这样做:
Using built-in function:
If you don't want to use the built-in function for converting int to binary then you can also do this:
这是我的方法,有点让人相信字节数是固定的
here is my methods, it is a little bit convince that number of bytes fixed
使用位移位会快一点......
Using bit shift is a little quicker...
如果int值为15,则可以将其转换为二进制,如下所示。
如果您有二进制值,可以将其转换为 int 值,如下所示。
if the int value is 15, you can convert it to a binary as follows.
if you have the binary value, you can convert it into int value as follows.
这可以用伪代码表示为:
This can be expressed in pseudocode as:
您确实应该使用 Integer.toBinaryString ()(如上所示),但如果由于某种原因你想要自己的:
You should really use Integer.toBinaryString() (as shown above), but if for some reason you want your own:
我的2分钱:
My 2cents:
这应该很简单,如下所示:
This should be quite simple with something like this :
为了使其恰好是 8 位,我对 @sandeep-saini 的答案做了一些补充:
所以现在对于
1
的输入,你会得到00000001
的输出In order to make it exactly 8 bit, I made a slight addition to @sandeep-saini 's answer:
So now for an input of
1
you get an output of00000001
我们不能使用
n%2
来检查第一位,因为它不适合负整数。我们应该使用n&1
。We cannot use
n%2
to check the first bit, because it's not right for negtive integer. We should usen&1
.还有 java .lang.Integer.toString(int i, int base) 方法,如果您的代码有一天可能会处理 2(二进制)以外的基数,则该方法会更合适。请记住,此方法仅提供整数 i 的无符号表示,如果它是负数,它将在前面添加一个负号。它不会使用二进制补码。
There is also the java.lang.Integer.toString(int i, int base) method, which would be more appropriate if your code might one day handle bases other than 2 (binary). Keep in mind that this method only gives you an unsigned representation of the integer i, and if it is negative, it will tack on a negative sign at the front. It won't use two's complement.
另一种方法-通过使用 java.lang.Integer 您可以在第二个参数指定的基数(八进制 - 8、十六进制 - 16、二进制 - 2) 中获取第一个参数
i
的字符串表示形式。示例_
输出_
One more way- By using java.lang.Integer you can get string representation of the first argument
i
in theradix (Octal - 8, Hex - 16, Binary - 2)
specified by the second argument.Example_
OutPut_
这是我几分钟前写的,只是胡乱写的。希望有帮助!
}
This is something I wrote a few minutes ago just messing around. Hope it helps!
}
将整数转换为二进制:
输出:
输入整数:
10
二进制数:1010
Convert Integer to Binary:
Output:
Enter Integer:
10
Binary Number: 1010
最简单的方法是检查数字是否为奇数。如果是,根据定义,其最右边的二进制数将为“1”(2^0)。确定这一点后,我们将数字向右移位并使用递归检查相同的值。
The simplest approach is to check whether or not the number is odd. If it is, by definition, its right-most binary number will be "1" (2^0). After we've determined this, we bit shift the number to the right and check the same value using recursion.