歡迎加入我的 Discord 群組與我討論程式相關的問題!

Posted on 

 by 

 in ,

ZeroJudge a034. 二進位制轉換

評分:1 分,滿分為 5。

題目連結

題意

給一個十進位的整數,要你把那個整數二進位的表示法輸出出來

解題方法

可以利用 位元運算 的左移 (>>) 以及 (&) 來直接獲得二進位的表示法!

這題也可以用一直除以 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

在〈ZeroJudge a034. 二進位制轉換〉中有 1 則留言

  1. 「013074」的個人頭像
    013074

    包子很好吃 feet.YT燃燒

發表迴響

Blog at WordPress.com.

%d 位部落客按了讚: