C語言把256位二進制轉爲16進制

需求:

       有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 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章