如下面的循环,需要把 buf 中所有的元素都向左或向右移动指定二进制位,寻求大神指点。
unsigned char buf[4096];
for (;;)
{
recv(s, buf, sizeof(buf), 0);
}
如下面的循环,需要把 buf 中所有的元素都向左或向右移动指定二进制位,寻求大神指点。
unsigned char buf[4096];
for (;;)
{
recv(s, buf, sizeof(buf), 0);
}
向左移动一位,移动的位丢弃,右边补0:
int ca = 0;
for (int i = n - 1; i >= 0; i--)
{
int ca1 = buf[i] / 2;
buf[i] = buf[i] * 2 + ca;
ca = ca1;
}
向右移动一位,移动的位丢弃,左边补0:
int ca = 0;
for (int i = 0; i < n; i++)
{
int ca1 = buf[i] % 2;
buf[i] /= 2;
if (ca) buf += 128;
ca = ca1;
}
多位你就调用多次。