16進文字配列を表示

630 ワード

1.一連の16進数値を文字配列に保存し、16進数で表示します.
	unsigned char buf[5] ="\x8B\x22\x11\x12"; //  \0

	CString str;
	for(int i=0;i<4;i++){
		CString s;
		s.Format("%x ",buf[i]);
		str += s;
	}
	AfxMessageBox(str);

出力結果:8 B 22 11 12
2.最初の文が
char buf[5] ="\x8B\x22\x11\x12"; //  \0 

出力結果はffffff 8 B 22 11 12
分析:
1つのchar変数が保存できる配列範囲は-128から127であり、8 Bは10進数の139であり、1つのcharが保存できる範囲を超えているからである.
使用時
s.Format("%x ",buf[0]);

すると、まず整数-117に変換され、-117の16進数が表示されます.そこでffffff 8 Bということになりました.