【初心者歓迎】C/C++室 Ver.77【環境依存OK】at TECH【初心者歓迎】C/C++室 Ver.77【環境依存OK】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト12:デフォルトの名無しさん 11/12/12 23:40:00.07 >>9 intはint型と書いてくれよ。char型だって整数型なんだから。 13:デフォルトの名無しさん 11/12/12 23:51:16.42 >>6-10 すんません。偉そうに教える程の知識は無いんですが、、、 「暗黙」だろうが「明示」だろうが、優先順位は変わらないと思います。 そして、式内では「精度の高い型」に変換されるので i = c<<16; は、うちは64bitOS(linux) (1)16はint型とみなされる。 (2)c<<16 で右辺の16はint型なので、cは暗黙的にint型にキャストされる。 (3)i = c<<16 で左辺の(unsigned int)にキャストされる。 ってな感じだと思っていたのです。 ・・・って、みなさんの言う、整数拡張ってwikiって見たら、 確かに演算子ではないですね。ということは、無条件に行われるから 優先順位が一番高いとも言えるのかな。 すっかり、ミイラ取りがミイラになっています。 とりあえず、多分、前スレ>>999さんは unsigned char c; unsigned int i; c = 0xff; i = (unsigned char)(c<<(unsigned char)(16)); printf("c: %x\n", (unsigned int)c); printf("i: %x\n", i); を期待されていたのでしょう。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch