gpt4 book ai didi

c++ - 如何将最低有效位写入缓冲区?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:56:14 26 4
gpt4 key购买 nike

我有一个 writeBit 方法,它应该将 int i 的最低有效位写入 char 类型的缓冲区 buff,然后递增位缓冲区索引。我不确定我所知道的是否正确,欢迎任何意见。

private:
char buff; // buffer
int num_bits; // num of bits written to buff
std::ostream& os_ref;

public:
// Skipping the constructor and ostream& for brevity

int writeBit(int i) {
// flush buffer if full
if(num_bits == 8)
flush();

// write least significant bit into the buffer at the current index.
int lb = i & 1;
buff = buff & num_bits; // not sure about this line
buff = lb;
num_bits++;

// return current index
return num_bits; // do I return nbits as current index?
}

最佳答案

我想这样的事情应该有效,让我知道:

buff |= (i & 1) << nbits;

确保buffflush() 期间设置为 0
基本上,i & 1获取最后一个有效位,<< nbits将左边的位移动 nbits 次,并将该位添加到 buff

关于c++ - 如何将最低有效位写入缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18396490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com