0

整数値を対応する16進数に変換し、C言語を使用して1バイト変数に格納するにはどうすればよいですか。

int nVar = 24; // where hex value 0x18

BYTE byRes; 

char sBuff[8] = {0};
sprintf(sBuff, "%x", nVar); 

ここで、sBuff [0]=0x30およびsBuff[1]= 0x38ですが、これは私が探しているものではありません。nVarの16進値をbyRes変数に保存したいと思います。

ありがとう

4

2 に答える 2

4

「decimal」または「hex」は数値の表現にすぎないことに注意してください。言い換えれば、これらは画面にを表示するさまざまな方法です。intを割り当てると、の値がにbyRes = (BYTE)nVar;コピーされます。必要に応じて、その値を16進数または10進数、7進数または42進数として表示できます。最近のコンピューターは、電圧の差としてデータを保存します。マシンレベルでは、これらを「高」と「低」または「0」と「1」(別名バイナリ)の観点から考えることがよくありますが、プログラミングレベルでは、これらの数値はどのようにでも考えることができます。願い。ある変数から別の変数に「16進数」の値を割り当てることは、「10進数」の値を割り当てることと同じです。これは、コンピューターが私たちの考え方を知らないためです。nVarbyRes表示を依頼するまでの値について。これを行うと(たとえば、printf()呼び出しを使用して)、コンピューターは値をASCII文字に変換します。これは、実際には操作している整数値ではありません。

于 2013-01-03T01:31:40.167 に答える
1

Cのすべての数値(およびその他すべて)は2進数で表されます。0x18と24の値は同じです。それらを文字列として表現したい場合にのみ重要です。

于 2013-01-03T01:32:19.540 に答える