我想将 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/