プログラミングの為の ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
441:434 06/03/10 19:27:10 ああ、そりゃ悪かったな。 しかし多少修正すりゃいいことじゃないか 単に >>435の符号を入替えて int div(int x,int y){ int sgn=x^y; sgn=sgn>>31; return (x-((-y^sgn)>>1))/y; } x/y = div(x,y) -20/10= -2 -19/10= -2 -18/10= -2 -17/10= -2 -16/10= -2 -15/10= -1 -5/10= 0 5/10= 1 15/10= 2 -14/10= -1 -4/10= 0 6/10= 1 16/10= 2 -13/10= -1 -3/10= 0 7/10= 1 17/10= 2 -12/10= -1 -2/10= 0 8/10= 1 18/10= 2 -11/10= -1 -1/10= 0 9/10= 1 19/10= 2 -10/10= -1 0/10= 0 10/10= 1 20/10= 2 -9/10= -1 1/10= 0 11/10= 1 -8/10= -1 2/10= 0 12/10= 1 -7/10= -1 3/10= 0 13/10= 1 -6/10= -1 4/10= 0 14/10= 1 これでいいんだろ? 442:434 06/03/10 19:32:15 たぶん、 ホントは四捨五入でret = (2 * a + (b^t)) / (2 * b) を使いたかったけど2つある2倍が嫌なんで ret = ( a + ((b^t)>>1) ) / b; としたら、プラス側が6で変化したんで ret = ( a - ((-b^t)>>1) ) / b; として、まあマイナス側に-6で変化したっていいやで 計算量優先にしたんだろ
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5381日前に更新/259 KB
担当:undef