- ベストアンサー
C言語のビットシフトの質問
C言語の右ビットシフトで、以下のプログラムの結果について、納得できずにいます。 dを右にシフトすると、上位ビットには0が入るのではないでしょうか? よろしくお願いします。 プログラム unsigned char d='0'; printf("%c\n", d); printf("%c\n", d>>5); 結果 0 『
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
期待する結果は何だったんでしょうか? おそらく上位ビット0入ってると思いますよ。 unsigned char d = '0'; // 文字コードがASCIIであるなら 0x30 と同義 printf("%x\n", d); printf("%x\n", d >> 5); 0x30 >> 5 → 0x01 文字コード 0x01 の文字を表示させようとして見た目おかしくなってるだけかと。
その他の回答 (1)
- kmee
- ベストアンサー率55% (1857/3366)
回答No.1
printfで、書式に"%c"を使ったとき、何が出力されるか、理解してますか? '0'と0の違いって理解できてますか?
質問者
お礼
ありがとうございました。 '0'と0の違いを、理解できていませんでした。
お礼
ありがとうございました。 理解できていませんでした。