- ベストアンサー
コンピュータアーキテクチャ
偶数丸めの問題です 答えを見ると端数が半分以上なら切り上げるとか書いていますが全く意味がわかりません 偶数丸めの問題で簡単に解くコツなどがあれば教えて欲しいです
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>答えを見ると端数が半分以上なら切り上げるとか書いていますが全く意味がわかりません 「半分以上なら切り上げる」は「ピッタリ半分」を含んでいますので「偶数丸め」ではありません。(四捨五入と偶数丸めの違いを再確認すること) >偶数丸めの問題で簡単に解くコツなどがあれば教えて欲しいです 「偶数丸め」の定義を覚えて定義された処理を忠実に行うことで良い。
その他の回答 (2)
- _kappe_
- ベストアンサー率68% (1583/2308)
偶数丸めを10進数の場合で考えてみましょう。10進数での四捨五入は分かりますね。 123X.YZという値を偶数丸めして整数にするとします。小数点以下のYZの部分が切り捨て・切り上げされる端数です。 普通の四捨五入ならYが0~4のとき切り捨て・5~9のとき切り上げです。 一方、偶数丸めの場合はYだけ見て判断することはできません。切り捨てか切り上げか決めるのにXとZも考慮しなければいけない場合があります。 (A)YZが00~49なら切り捨て (B)YZが50なら (B-1)Xが偶数のとき切り捨て(ここが普通の四捨五入と違うところ) (B-2)Xが奇数のとき切り上げ (C)YZが51~99なら切り上げ 2進数の場合も基本は同じです。10進数の四捨五入にあたるものは2進数だと零捨一入です。 最後に、質問のタイトルは「2進数での偶数丸め」とかにしたほうがいいと思います。「コンピュータアーキテクチャ」というのは授業のタイトルか何かですかね。
- _kappe_
- ベストアンサー率68% (1583/2308)
>答えを見ると端数が半分以上なら切り上げるとか書いていますが全く意味がわかりません 本当にそう書いてあるとすると、偶数丸めの定義に合っていないので分からなくて当然です。 偶数丸めをするなら端数が (A)半分より小さい→切り捨て (B)ちょうど半分 (C)半分より大きい→切り上げ の3つの場合に分ける必要があり、(B)の場合はさらに (B-1)上の桁が偶数→切り捨て (B-2)上の桁が奇数→切り上げ の2つに分けて判断します。 「半分以上なら」という条件だと「(C)半分より大きい」と「(B)ちょうど半分」の両方を含んでしまうので、正しい判断を行えません。 >簡単に解くコツなどがあれば教えて欲しいです コツで解こうとしてはいけません。考え方を覚えてください。