200 写成二进制

👁️ 1 人浏览 💬 0 人评论 ❤️ 添加收藏

运行下面这段程序:

本节模型:to_base(n, base) 除基取余转进制;count_bits(n) 数二进制里 1 的个数。

#include <iostream>
#include <string>
#include <vector>
using namespace std;

string to_base(long long n, int base) {
    // 把非负整数 n 转成 base 进制(base <= 16)
    if (n == 0) return "0";
    const string digs = "0123456789abcdef";
    string s;
    while (n > 0) {
        s = digs[n % base] + s;
        n /= base;
    }
    return s;
}

int count_bits(long long n) {
    // 数 n 的二进制里有几个 1
    int c = 0;
    while (n > 0) {
        c += n & 1;
        n >>= 1;
    }
    return c;
}

int main() {
    cout << to_base(200, 2) << endl;
}

(本题用 g++ -std=c++17 -O0 编译。)

提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论