プログラミングの為の ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
448:434 06/03/10 21:30:52 ようするに、結果見ると、変な四捨五入じゃなくて 普通の四捨五入をやりたいって事にやっと気付いた。 すまんな。 449:434 06/03/10 21:40:25 ちなみに試したコード #include <stdlib.h> int divd(int x,int y){ div_t d=div(x+y/2,y); return d.quot+(d.rem>>31); } int divd(int x,int y){ div_t d=div(x*2+y,y*2); return d.quot+(d.rem>>31); } 結果はどっちも >>441 と y=10では同じになる 450:434 06/03/10 22:11:31 言い訳すると >>427 で >単純に0.5を足して切り捨てると除算結果が負数の場合に問題があるのです に騙されてしまった。 単純に0.5を足して切り捨てるのをやりたかったのだろう。 ただ、X86では除算の結果が負数になる場合は余りも負数になる。 a/b= n余りsなら a = n*b + s = s+b+(n-1)*b となる修正をすればいい アセンブラで書けば、 cdq idiv sqr edx,#31 add eax,edx と4命令
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5382日前に更新/259 KB
担当:undef