1. 程式人生 > >C語言“%”運算符

C語言“%”運算符

特殊情況 result ava 情況 轉換 兩個 不能 運算符 特殊

C語言中運算符“%”是取余運算符,而非取模運算符。(運算符“%”在C/C++, JAVA中,為取余運算,而在Python中為取模運算)

對於一個C語言取余表達式a % b,設其值為result,有如下公式:

  1. k = (int)a / b ((int)強制類型轉換,會把值向 0 方向舍入)

  2. result = a - k * b

取模和取余的區別:計算 k 的值時舍入的方向不同,取模運算符會把 a / b 的結果向負無窮取舍,而取余運算符會把 a / b 的結果向 0 取舍。(例如,-4 / 3 的取模時 k 的值為 -2 ,而取余時 k 的值為 -1)

例子:

  求13 % 4的值。

  1. k = (int)13 / 4 = 3

  2. result = 13 - 3 * 4 = 1

  所以,其值為1。

註意事項:取余運算符的兩個操作數必須都是整數,且第二個操作數不能為零。

特殊情況:

  當|a| < |b|時,值永遠是 a。

  當|a| = |b|時,值永遠是 0。

  當 a = 0 時,值永遠是 0。

C語言“%”運算符