如何将int数从十进制转换为二进制?

时间:2010-12-14 22:10:53

标签: java binary decimal

如何将int数从十进制转换为二进制。例如:

int x=10; // radix 10

如何使另一个整数具有x的二进制表示,例如:

int y=1010; // radix 2

仅使用c?

8 个答案:

答案 0 :(得分:4)

整数总是在内部以二进制格式存储 - 说您要将int x = 10 base 10转换为int y = 1010 base 2没有意义。也许你想将它转换为表示整数二进制格式的字符串,在这种情况下你可以使用Integer.toBinaryString

答案 1 :(得分:3)

你应该理解的第一件事是是一个抽象的概念,它不受任何表示的约束。例如,如果你有20个苹果,无论表示如何,苹果的数量都是相同的。所以,dec("10") == bin("1010")
int的值引用了这个抽象的价值概念,除非你打印它,否则它没有任何形式。这意味着base的概念仅对从string到int和back的转换很重要。

答案 2 :(得分:2)

答案 3 :(得分:1)

你的问题有点不清楚,但我会尽力去理解它。

  

如何使另一个整数具有x的二进制表示,例如:int y=1010 radix 2

从这看起来您希望在源代码中编写二进制文字。 Java不支持二进制整数文字。它只支持十进制,十六进制和八进制。

您可以将数字写为字符串,并使用Integer.parseInt和所需的基数:

int y = Integer.parseInt("1010", 2);

但是你应该注意到最终结果与写int y = 10;相同。在源代码中作为十进制文字写入的整数10在每种方式上与从二进制字符串“1010”解析的整数int相同。如果它们都存储为Integer.toBinaryString,则它们的内部表示没有区别。


如果要将现有整数转换为字符串的二进制表示形式,则可以使用其他人已经指出的{{1}}。

答案 4 :(得分:1)

它是二进制还是十进制并不与整数本身有任何关系。二进制或十进制是整数的物理表示的属性,即字符串。因此,您应该查看的方法是Integer.toString()Integer.valueOf()(采用基数参数的版本)。

BTW,在内部,所有Java整数都是二进制的,但源代码中的文字是十进制(或八进制)。

答案 5 :(得分:0)

两个整数将具有相同的内部表示,但您可以通过Integer.toBinaryString(i)显示为二进制

答案 6 :(得分:0)

使用Integer.toBinaryString()

String y = Integer.toBinaryString(10);

答案 7 :(得分:0)

将整数转换为另一个基数(字符串表示):

int num = 15;
String fifteen = Integer.toString(num, 2);
// fifteen = "1111"

将字符串转换回整数

String fifteen = "1111";
int num = Integer.valueOf(fifteen, 2);
// num = 15

这涵盖了任何基础的一般情况。没有办法显式地将整数分配为二进制(只有十进制,八进制和十六进制)

int x = 255; // decimal
int y = 0377; // octal (leading zero)
int z = 0xFF; // hex (prepend 0x)