余数反着读
约 10 分钟
除 2 取余得到的一串余数,别顺着读,要「从下往上、反着读」才是正确的二进制。就像盖楼,先盖的是最底层(最低位),最后盖的才是顶层(最高位)。6 的余数依次是 0、1、1,反过来读就是 110,所以 6 的二进制是 110。
#include <iostream>
#include <string>
using namespace std;
int main(){
int n = 6;
string s = "";
while(n > 0){
s = char('0' + n%2) + s; // 新余数放最前,等于反着读
n /= 2;
}
cout << s; // 输出 110
return 0;
}
易错点:顺着读余数是错的。6 顺读成 011 就完全不对了,一定要反过来读成 110。
小纸条
5 的余数依次是 1、0、1,反着读,5 的二进制是多少?
登录 后可看答案