c++ 这段程序是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/26 06:29:49
int convertToBits(BYTE *x, int numBits, int tp_n, int *n0, int *n1, int *bitsRead)
{
int i, j, bit, done;
BYTE mask;

done = 0;
for ( i=0; i<(numBits+7)/8; i++ ) {
mask = 0x80;
for ( j=0; j<8 && !done; j++ ) {
bit = (x[i] & mask) ? 1 : 0;
if ( bit == 0 )
(*n0)++;
else
(*n1)++;
epsilon[(int)*bitsRead].b = bit;
(*bitsRead)++;
if ( (int)*bitsRead == tp_n ) {
done = 1;
break;
}
mask >>= 1;
}
}

return done;
}

希望能将每个细节详细解析,谢谢.

把一串BYTE 类型的数据转换成二进制的表示形式,存放到
epsilon数组中.
假如BYTE数组是这样的:{0x10,0x20},二进制就是{00010000,00100000}
那么转换后epsilon就是这样
epsilon[0].b=0
epsilon[1].b=0
epsilon[2].b=0
epsilon[3].b=1

epsilon[4].b=0
epsilon[5].b=0
epsilon[6].b=0
epsilon[7].b=0

epsilon[8].b=0
epsilon[9].b=0
epsilon[10].b=1
epsilon[11].b=0

epsilon[12].b=0
epsilon[13].b=0
epsilon[14].b=0
epsilon[15].b=0

这个程序应该是用于加解密或压缩用的吧?