帶負值的模算子為什么這些行動:std::cout << (-7 % 3) << std::endl;std::cout << (7 % -3) << std::endl;給出不同的結(jié)果?-1
1
3 回答

紅糖糍粑
TA貢獻1815條經(jīng)驗 獲得超6個贊
二進制/運算符產(chǎn)生商,二進制%運算符從第一個表達式除以第二個表達式得到余數(shù)。如果/或%的第二個操作數(shù)為零,則行為未定義;否則(a/b)*b+a%b等于a。 如果沒有,則剩余部分的標志是實現(xiàn)定義的。.

LEATH
TA貢獻1936條經(jīng)驗 獲得超7個贊
a % b
在c+默認情況下:
(-7/3) => -2
-2 * 3 => -6
so a%b => -1
(7/-3) => -2
-2 * -3 => 6
so a%b => 1
在python中:
-7 % 3 => 2
7 % -3 => -2
在c+到python中:
(b + (a%b)) % b
- 3 回答
- 0 關注
- 370 瀏覽
添加回答
舉報
0/150
提交
取消