如何将int数从十进制转换为二进制。例如:
int x=10; // radix 10
如何使另一个整数具有x的二进制表示,例如:
int y=1010; // radix 2
仅使用c?
答案 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)
String s = Integer.toBinaryString(10);
http://download.oracle.com/javase/1.5.0/docs/api/java/lang/Integer.html
答案 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()
(采用基数参数的版本)。
答案 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)