コードレビュー:コードを書くときのcoutとprintf出力16進数についての簡単な思考


まあ、私は自分がlowで、これらのもののために悩んでいることを認めますが、基礎はずっと重要だと思っています.特に私にとって...
1、今日coutでunsigned char形式のデータを出力する時、コンソールは文字化けを表示して、printf形式で出力して、この問題を解決して、これはC/C++の中で比較的に混同しやすいです.
unsigned char i=0xaa;
char j=1;
cout<
cout<

以下にまとめます.
unsigned charのタイプは結局整数型なのか、文字形式で印刷されるか整数型で印刷されるかが重要です.
オブジェクトオペレータ<
2.別の場合
char i=0xf0;
printf("%X",i);//  fffffff0
この場合、プログラムはシンボルを識別する際に生じるため、通常、iをunsigned charのフォーマットに設定する.
ネットユーザーの話によると、いいですね.私はもう修正しません.
0 xf 0(char)圧入関数パラメータスタックは0 xfffffff 0(int)になったのではないでしょうか.まだ理解できない場合は、b[1]=0 xf 0;すなわちb[1]=-16である.int param = b[1];paramは-16に等しいのではないでしょうか.intタイプの-16は0 xfffffffff 0ですか?C言語の基準に従って、%02 xを%02 hhxに変更する必要があります.つまり、hを2つ追加しますが、ゴミのVCを使用している場合はprintf(「b[1]is%02 x」、(unsigned char)b[1])しか使用できません.にさせておく