方法十進制轉換成二進制:十進制轉換爲二進制輸出
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