C++ 使用簡單方法輸出整形的31位二進位制
阿新 • • 發佈:2018-11-16
總時間限制:
1000ms
記憶體限制:
65536kB
// 在此處補充你的程式碼
描述
給出一個int表示範圍內的正整數x,輸出其二進位制表示。一共要輸出31位,不足處要補0。
#include <iostream> #include <string> using namespace std; string dec2bin(int x){
} int main(){ int n; cin >> n; while(n--) { int x; cin >> x; cout << dec2bin(x) << endl; } return 0; }
輸入
第一行是整數n(n<15),表示有n個正整數要處理
第二行是n個正整數
輸出
對每個給出的正整數,輸出其二進位制表示。不足31位則用0補齊到31位
樣例輸入
3 1 2 3
樣例輸出
0000000000000000000000000000001 0000000000000000000000000000010 0000000000000000000000000000011
這裡用的演算法就是除k取餘數,輸出的時候要倒序輸出,適應了C++ string的拼接方式,最後的補零操作也是這麼做的
#include <iostream> #include <string> using namespace std; string dec2bin(int x) { // 在此處補充你的程式碼 string s = ""; string s1; while (x) { if (x % 2) { s1 = "1"; } else { s1 = "0"; } x = x / 2; s = s1 + s; } for (int i = s.size(); i < 31; i++) { s = "0" + s; } return s; } int main() { int n; cin >> n; while (n--) { int x; cin >> x; cout << dec2bin(x) << endl; } return 0; }