スレを勃てるまでもないC/C++の質問はここで 24at TECH
スレを勃てるまでもないC/C++の質問はここで 24 - 暇つぶし2ch12:デフォルトの名無しさん
15/11/30 22:19:42.99 VtHFUkMk.net
unsigned shortがintに拡張されてから計算されるというのは最初からわかってるんですが、
unsigned shortの拡張される先がunsigned intではなくてintでなければいけない理由がわかっていないんです。
下の2行はunsigned intにしておけば掛け算にたいしても安全ではないか、ということです。
現実的ではないのかもしれませんがintが2byteの場合だと
unsigned short * unsigned shortの結果はunsigned int*unsigned intと一緒の結果ですよね。
それがint 4byteの場合だと結果はint*intになってINT_MAXをオーバーフローして困ったことになると思うんです。
なんでそうなってしまうかといえば、unsigned intではなくてintに変換されてから計算されるからです。
どうしてそのようになっているのですか?


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