cを2進法(0111111001)に、次に16進法(f9)に変換しました。それではなぜfffffff9の結果が返ってくるのですか?このコードの出力はなぜfffffff9ですか?
0
A
答えて
4
システム上のchar
タイプが署名されている場合、値0xf9は負の数です(具体的には-7です)。その結果、整数に変換すると整数に数値-7が得られます。これは16進表現0xFFFFFFF9(符号付き32ビット整数表現を使用している場合)です。
明示的に文字の値をunsigned char
にすると、C++はそれを正の値249(16進表現0x000000F9の等価整数値249)と同じようにキャストします。
+0
ああ、ありがとうございます。 – Lucy
関連する問題
- 1. このコードの出力は何ですか、なぜですか?
- 2. このコードの出力は何ですか?なぜですか?
- 3. このコードの出力は10です、なぜですか?
- 4. このコードの出力はなぜghですか?
- 5. なぜこのコード出力は 'thread:Thread ..'で、 'runnable:Thread ..'ではないのですか?
- 6. なぜ、このコード出力3
- 7. このCコードの出力が「ノー」なのはなぜですか?
- 8. python2.7のコードに出力がないのはなぜですか?
- 9. このコードが目的の出力を出力しないのはなぜですか?
- 10. 次のC++コードではなぜこの出力が得られますか?
- 11. なぜこのコードは最初の要素だけを出力しますか?
- 12. なぜこのコードは ""だけ出力されますか? (CodeingameのThorチャレンジ)
- 13. 私のコードはなぜこの出力(Python)を生成しますか?
- 14. なぜ次のコードが100を出力するのですか?
- 15. なぜこのプログラムの出力は4ですか?
- 16. この場合、S1S2の出力はなぜですか?
- 17. なぜこのプログラムの出力は2と0ですか?
- 18. これはなぜ次のループの出力ですか?
- 19. なぜこのコードは連続した数字を出力しますか?
- 20. なぜこのコードは同じ番号を複数回出力しますか?
- 21. なぜこのコードは最後に `undefined`を出力しますか?
- 22. (同じような)コードの出力が異なるのはなぜですか?
- 23. なぜ私のコードは0を出力していますか?
- 24. 次のコードはなぜnullを出力しますか?
- 25. なぜこのプログラムは出力を出さないのですか?
- 26. なぜこのCore 1 Webアプリは出力を出さないのですか?
- 27. なぜこの出力は8ですか?
- 28. このコードはなぜSeg_Faultingですか?
- 29. このコードはなぜoutOfBoundですか?
- 30. なぜこのGHCi式に出力がないのですか?
あなたの8ビット 'char'は**署名**されていて、コンソールに出力される前に32ビット**署名**' int'に**符号拡張**されています。その初期値は1に設定された高位ビットを持っているので、余分なビットもあります –
intへのキャストは符号拡張です。 – Steve
'char'は署名されていても署名されていなくてもかまいません。 '0371'は' signed char'に収まらないでしょう。 https://stackoverflow.com/questions/2054939/is-char-signed-or-unsigned-by-default –