c++ - 整数到 bool 数组

标签 c++

我想将 83 之类的整数编码为 1100101 之类的二进制代码,最快的方法是什么?现在我正在使用这段代码:

ToBinary(int size, int value) {  
    size--;  
    this->code = new bool[size];  
    int in = size;  
    while (in >= 0) {  
        if(pow(2, in) <= value) {  
        this->code[size-in] = pow(2, in);  
        value -= pow(2, in);  
        } else   
            this->code[size-in] = 0;  
        in--;  
    }  
}

最佳答案

您可以利用 >>> 的转换来使事情变得容易得多:

ToBinary(int size, int value) {
    int i = size;

    this->code = new bool[size];

    while(i--) {
        this->code[i] = (value >> i) & 1;
    }
}

(或者,以相反的顺序,this->code[size - i]。)

关于c++ - 整数到 bool 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12447593/

相关文章:

c++ - 在不实现纯虚方法的情况下子类化模板类

c++ - Qt:如何将输入值从 on_pushButton_clicked() 函数传递给 paintGL()

c++ - Windows中的互斥问题

c++ - 创建输入流操纵器

c++ - 对象特定的 ArrayList C++ 问题

c++ - 如何创建具有预定义状态的自定义 Quick QML 项

c++ - 函数模板参数推导和继承

c++ - Density of floating point number - 数字的大小

c++ - vector 迭代器不兼容

c++ - 我可以在 Microsoft C++ 中测量 sprintf 所需的缓冲区吗?