菜鸟问题~~~~~送分送分~~~~如何做位运算? BYTE data[19];我有19个字节,如何得知他们所有的bit中1的个数是不是奇数呢?应该算手动编写奇校验吧. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 手工对单个字节判断:BYTE byteValue = ??;bool bIsAzygous = byteValue < 0;for(int i = 1; i < 8; i ++){ byte = byteValue << 1; if(byteValue < 0) bIsAzygous = !bIsAzygous;} byte = byteValue << 1;应为byteValue = byteValue << 1; 查表法,构造一个[0..255]的数组,里面事先计算好单个字节的奇偶性,比如// 0表示是偶个数,1表示是奇个数ParityArray = {0, 1, 1, 0, 1, 0, 0, 1, 1, ..................., 1, 1, 0};// 返回true代表偶个数,false代表奇个数BOOL CheckParity(BYTE data[]){ int nParity = 0; for(int i=0; i<sizeof(data); i++) { nParity += ParityArray[data[i]]; } return ((nParity % 2) == 0);} // 0表示是偶个数,1表示是奇个数char ParityArray[] = {0, 1, 1, 0, 1, 0, 0, 1, 1, ..................., 1, 1, 0}; 还是折中点,判断单个字节数里的1个数 unsigned char data = 0x65; char res = 0; while(data) { res += (data&0x01)?1:0; data>>=1; } 得不到百度发帖框内容 VC/MFC编程runtime error 关于OBJ编译重定义的问题探讨 为什么这样写会出错? 高分求学~~HTTP包分析 如何控制输出1000HZ的声音 这条信息是什么意思. 如何惩罚那些侵犯我私有财产的人? COM调用!急!急! 数字值为什么不能左对齐? 求读整数和浮点数的函数? 请问如何在单文档的VIEW的同一个位置动态创建不同的属性页??
BYTE byteValue = ??;
bool bIsAzygous = byteValue < 0;
for(int i = 1; i < 8; i ++)
{
byte = byteValue << 1;
if(byteValue < 0)
bIsAzygous = !bIsAzygous;
}
ParityArray = {0, 1, 1, 0, 1, 0, 0, 1, 1, ..................., 1, 1, 0};// 返回true代表偶个数,false代表奇个数
BOOL CheckParity(BYTE data[])
{
int nParity = 0;
for(int i=0; i<sizeof(data); i++)
{
nParity += ParityArray[data[i]];
}
return ((nParity % 2) == 0);
}
char ParityArray[] = {0, 1, 1, 0, 1, 0, 0, 1, 1, ..................., 1, 1, 0};
char res = 0; while(data)
{
res += (data&0x01)?1:0;
data>>=1;
}