題意
給一個十進位的整數,要你把那個整數二進位的表示法輸出出來
解題方法
可以利用 位元運算 的左移 (>>) 以及 (&) 來直接獲得二進位的表示法!
這題也可以用一直除以 2 取餘數,最後在反過來,但是用位元運算方便許多
#include <bits/stdc++.h>
using namespace std;
int main() {
int x;
while(cin >> x){ // 要輸入直到 EOF
bool start = false; // 因為最一開始可能有很多 0 ,我們不能印到那個
for(int i = 31;i >= 0;i--) {
if((x >> i) & 1) {
if(!start) start = true;
}
if(start) cout << ((x >> i) & 1);
}
cout << '\n';
}
}
圖片來源:https://knowthecode.io/labs/basics-of-digitizing-data/episode-6
發表迴響