3C科技 娛樂遊戲 美食旅遊 時尚美妝 親子育兒 生活休閒 金融理財 健康運動 寰宇綜合

Zi 字媒體

2017-07-25T20:27:27+00:00
加入好友
純C將2個16進制的字元和一個BYTE資料空間互轉   #include #include #include char* C_1Byte_to_2Hex0F(int data) {     char chrOp[2];     int i,intH,intL,intVal[2];     intH=data/16;     intL=data;     intVal[1]=intH;     intVal[0]=intL;     for(i=0;i<2;i++)     {        if(intVal[i]<10)        {            intVal[i]+=48;        }        else        {            intVal[i]+=(97-10);        }        chrOp[i]=intVal[i];     }     return chrOp; } int C_2Hex0F_to_1Byte(char *data) {     //14,15     //12,13     //10,11     //8,9     //6,7     //4,5     //2,3     //0,1     int intData=0;     char chrOp=’\0′;     int i=0;     int j=0;     for(i=(2-1);i>=0;i–)//低到高進行運算     {         chrOp=data[i];         if( (chrOp>=48) && (chrOp<=57) )//’0’~’9′         {             intData+=(chrOp-48)* pow(16, j);         }         else if( (chrOp>=65) && (chrOp<=70) )//’A’~’F’         {             intData+=(chrOp-65+10)* pow(16, j);         }         else if( (chrOp>=97) && (chrOp<=102) )//’a’~’f’         {             intData+=(chrOp-97+10)* pow(16, j);         }         j++;     }     return intData; } int main() {     char data[16]={‘5′,’7′,’1′,’3′,’1′,’1′,’3′,’D’,’6′,’9′,’3′,’4′,’D’,’3′,’E’,’0′};//高->低的表示法,和計算機相反     int i=0;     int intD=0;     char *p;     for(i=(16-1);i>=0;i-=2)//i=15,13,11,9,7,5,3,1[因為表示和計算機相反,所以倒著取值]     {         intD=0;         intD=C_2Hex0F_to_1Byte(&data[i-1]);         printf(“%c%c->%d\t\t\t”,data[i-1],data[i],intD);//傳高位的指標         p=C_1Byte_to_2Hex0F(intD);         printf(“%d->%c%c\n”,intD,*(p+1),*(p+0));     }     return 0; }        

本文由jashliaoeuwordpress提供 原文連結

寫了 5860316篇文章,獲得 23313次喜歡
精彩推薦