假设我有一个
long int x = 123;
我定义了一个
vector<bool> bits(64);
我想访问
x
中的第 4 位并将其存储到 bits
向量中:
bits[3]=get_bit(x,3);
如何实现
get_bit
功能无需执行耗时的操作,例如将x
复制到内存中,然后将第4位移到开头,然后应用掩码来获取值,然后将其存储在不必要的大4-字节对象,然后将其分配给 vector<bool>
只是为了转换回单个位。
有什么想法如何从一个地方抓取位值并将其写入另一个地方吗?
我不想说出显而易见的事情,但是:
bits[3] = x & (1 << 3);