スレを勃てるまでもないC/C++の質問はここで 24 [転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0012デフォルトの名無しさん
2015/11/30(月) 22:19:42.99ID:VtHFUkMkunsigned 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に変換されてから計算されるからです。
どうしてそのようになっているのですか?
■ このスレッドは過去ログ倉庫に格納されています