基础知识:进制转换 #include <iostream> using namespace std; //string类除以2 void string_chu_2(string& s) { string t; int a = 0; //余后值 for (int i = 0; i < s.size(); i++) { //除 char c; c = (a * 10 + s[i] - '0') / 2 + '0'; t = t + c; //余 a = (a * 10 + s[i] - '0') % 2; } int i = 0; if (t != "0") while (t[i] == '0') i++; t.erase(0, i); s = t; } int main() { string a;//输入的数字 while (cin >> a) { if (a == "0") { cout << 0 << endl; continue; } string s;//二进制表示 while (a != "0") { char c; if ((a[a.size() - 1] - '0') % 2 == 0) c = '0'; else c = '1'; s = c + s; string_chu_2(a); } cout << s << endl; } return 0; }