【初心者歓迎】C/C++室 Ver.77【環境依存OK】at TECH
【初心者歓迎】C/C++室 Ver.77【環境依存OK】 - 暇つぶし2ch13:デフォルトの名無しさん
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);
を期待されていたのでしょう。


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch