需求:
有256点数据,每个点有两个取值范围,0表示黑色,1表示白色,然后要把这256个点打包成32个BYTE。
void make_data_package(char buff[] , long out[])
{
char tempBuffer[8] = {0};
char *end ;
for (int i=0 , targetIndex =0, tIndex =0; i<256; i++ , tIndex++ )
{
if( tIndex >=8 )
tIndex = 0;
tempBuffer[tIndex] = buff[i];
printf("%c " , tempBuffer[tIndex]);
if ( (i+1) % 8 ==0) {
printf("\n");
out[targetIndex] =strtol(tempBuffer, &end, 2);
//printf("\nout[%d] = %lx \n" , targetIndex ,out[targetIndex] );
targetIndex++;
}
}
}
运行结果:
0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
1 1 1 1 0 1 1 1
1 1 1 1 1 1 0 1
1 1 1 1 1 1 1 1
0 1 1 1 1 1 1 1
1 1 0 1 1 1 1 1
7f df f7 fd
ff 7f df f7
fd ff 7f df
f7 fd ff 7f
df f7 fd ff
7f df f7 fd
ff 7f df f7
fd ff 7f df