CでHEXをASCII変換に変換する私のロジックは次のとおりです。
for (i=0;i<ArraySize;i++)
{
/*uses a bitwise AND to take the top 4 bits from the byte,
0xF0 is 11110000 in binary*/
char1 = Tmp[i] & 0xf0;
char1 = char1 >> 4;
/*bit-shift the result to the right by four bits (i.e. quickly divides by 16)*/
if (char1 >9)
{
char1 = char1 - 0xa;
char1 = char1 + 'A';
}
else
char1 = char1 + '0';
Loc[j]=char1;
j++;
/*means use a bitwise AND to take the bottom four bits from the byte,
0x0F is 00001111 in binary*/
char1 = Tmp[i] & 0x0f;
if (char1 >9)
{
char1 = char1 - 0xa;
char1 = char1 + 'A';
}
else
char1 = char1 + '0';
Loc[j]=char1;
j++;
Loc[j]=0;
}
Temp と Loc は文字列バッファです。定義され、データがあります。正常に動作していません。いくつかのファイルから一時的にデータを読み取っています (サンプル fread)。特定の時点でファイルの読み取りを停止します。私が先に変われば
0xf0
に
0x0f
ファイルの読み取り方法は次のとおりです。
BytesRead = fread (Tmp,1,Bytes,PrcFile);
次に、ファイル全体を読み取ります。足りないものを見つけることができません。この点で私を助けてください。ありがとう