方法十进制转换成二进制:十进制转换为二进制输出
string toBinary(unsigned int n) {
char binary[33] = {0}; // char array with 0 value in each index
int ix = 32;
do {
binary[--ix] = '0' + n % 2; // adding remainder to specific index
n /= 2; // dividing n with 2
} while (n); // loop until n is not equal to 0
// return a string
return (binary + ix); // but unable to understand this line
}
任何人都可以请解释发生了什么事就在这里return (binary + ix);
http://web.math.princeton.edu/math_alive/1/Lab1/Conversion.html –
感谢重播球员。您可以请稍微解释一下 –
小评论:'int'不一定是32位,这里假设。更大的数字在这里会产生奇怪的效果。解决方案是使用'sizeof(int)* CHAR_BIT'而不是32。 – stefaanv