% :python中,符號 % 其實是取模,不是取餘。
取餘與取模的差別:
當兩個數均為正數是,取餘與取模的結果是一致的,而當兩個數一正一負時結果就不一樣了。
舉例:
a = -5, b = 3, y = 餘數, m = 模
取餘過程:
c = a / b = -1.67
取余時,會將 c 向0的方向捨棄掉小數部分,c = -1.67,捨棄後 c = -1
則餘數計算如下:
y = a - b * c = -5 - (3 * (-1)) = -2
取模過程
c = a / b = -1.67
取模時,會將 c 向負無窮的方向取整,比如此處 c = -1.67,向負無窮方向取整後 c = -2,
則取模計算如下:
m = a - b * c = -5 - 3 * (-2) = 1
**操作
# 兩數符號不同的情況
a =-
5b =
3# 取模操作很簡單,通過 % 符號即可實現
m = a % b
# 取餘
c = a / b
y = a - b *
int(c)
print
('對 a、b 取模的結果:{};\n對 a、b 取餘的結果:{}。'
.format
(m, y)
)print()
# 兩數符號相同的情況
# 同為正數
a =5
b =3
# 取模
m = a % b
# 取餘
c = a / b
y = a - b *
int(c)
print
('對 a、b 取模的結果:{};\n對 a、b 取餘的結果:{}。'
.format
(m, y)
)print()
# 同為負數
a =-
5b =-3
# 取模操作很簡單,通過 % 符號即可實現
m = a % b
# 取餘
c = a / b
y = a - b *
int(c)
print
('對 a、b 取模的結果:{};\n對 a、b 取餘的結果:{}。'
.format
(m, y)
)'''
對 a、b 取模的結果:1;
對 a、b 取餘的結果:-2。
對 a、b 取模的結果:2;
對 a、b 取餘的結果:2。
對 a、b 取模的結果:-2;
對 a、b 取餘的結果:-2。
'''
取模與取餘
通常情況下取模運算 mod 和求餘 rem 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a ...
C 中的取餘與取模
目前為止,我並沒有找到c 中數學意義上的取模操作。是一種取餘運算。假設r a mod b,關於取模與取餘的一點概念有 那麼,c 中什麼時候會用到取模?在型別轉換時,當把乙個超出範圍的值v賦給乙個無符號型別時,其計算方法是 先確定無符號型別的可取數n 最終結果 v mod n 比如,把 1賦值給uns...
取模與取餘的區別
其實取模和取餘在目標上是一致的,但是因為語言對取餘和取模上定義的不同,導致得到的結果不同。對取餘和取模定義不同的語言中,兩者的不同點只有乙個 取餘運算在計算商值向0方向捨棄小數字 取模運算在計算商值向負無窮方向捨棄小數字 同時,也可以這樣理解 從上面的區別可以總結出,取餘 rem 和取模 mod 在...