読者です 読者をやめる 読者になる 読者になる

Pebble's Diary

プログラマーの作業メモ

swfit 負数の除法

swift,C,Javaruby, python,perlでは、 負数を割り算や剰余に使った場合、結果が異なる。

python 剰余

7 % 3 -> 1
7 % -3 -> -2
-7 % 3 -> 2
-7 & -3 -> -1

swift 剰余

7 % 3    -> 1
7 % -3   -> 1
-7 % 3   -> -1
-7 % -3  -> -1

python

7 / 2 -> 3
7 / -2 -> -4
-7 / 2 -> -4
-7 / -2 -> 3

swift 商

7 / 2 -> 3
7 / -2 -> -3 
-7 / 2  -> -3
-7 / -2  -> 3

swiftの除法をユークリッド除法と呼び、 剰余を割られる値のsignに合わせる。

pythonの除法を絶対的最小剰余と呼び、割り切れない場合はマイナス無限大方向に丸める。

除法 - Wikipedia