我希望有人在这方面帮助我并请向我解释。这不仅是我想要的答案,而且我也想理解它。我进行了研究,但似乎找不到与我发布的问题相似或相关的答案。我不太擅长编程,但我想知道并了解更多这是怎么回事。
问问题
426 次
3 回答
1
在 Java 中,执行此操作的标准方法是Integer.toBinaryString
. 但是,如果你想创建自己的方法,你可以看看这个:
public static String toBinaryString(int n) {
String s = ""; // you can also use a StringBuilder here
do {
s = (n % 2) + s; // add to front: 0 if n is divisible by 2,
// 1 if n is not divisble by 2.
n /= 2; // divide n by 2 to obtain next digit of
// binary representation in next iteration
} while (n != 0);
return s;
}
尽管这是用 Java 编写的,但几乎任何语言都可以采用类似的方法。
这Integer.toBinaryString
归结为(实际上这个方法调用了另一个辅助方法):
public static String toBinaryString(int i) {
char[] buf = new char[32];
int charPos = 32;
do {
buf[--charPos] = digits[i & 1];
i >>>= 1; // i.e. i /= 2
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}
其中digits
定义为
final static char[] digits = { '0', '1', '2', '3', '4', '5', '6', '7',
'8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v',
'w', 'x', 'y', 'z' };
于 2012-11-25T14:51:24.683 回答
0
对于 Java,请通过 API 并阅读 Integer。已经有一种方法可以为您执行此操作,称为toBinaryString(int i)
http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#toBinaryString(int )
于 2012-11-25T14:46:41.307 回答
0
对于 C#:
int startVal = 7;
int base = 2;
string binary = Convert.ToString(startVal, base);
如果你想要 C++ 中的算法:
int i, n, a[100], m=0;
while(n!=0)
{
a[m++] = n%2;
n /= 2;
}
for(i=m-1;i>=0; --i)
cout<<a[i];
于 2012-11-25T14:48:15.443 回答