溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

對C、Java、Python等編程語言對正負整數(shù)取余運算的底層邏輯理解

發(fā)布時間:2020-08-29 08:04:30 來源:網絡 閱讀:387 作者:龍翔九天dl 欄目:編程語言

????偶然遇到一個python取余運算的問題,不是很理解,于是查找了一些文章進行分析

本文章參考 ? ?http://ceeji.net/blog/mod-in-real/? ?進行實例分析

?直接引用結論

  1. 1.對于任何同號的兩個整數(shù),其取余結果沒有爭議,所有語言的運算原則都是使商盡可能小。

  2. 2.對于異號的兩個整數(shù),C++/Java語言的原則是使商盡可能大,很多python 等新型語言和網頁計算器的原則是使商盡可能小


舉例:

對C、Java、Python等編程語言對正負整數(shù)取余運算的底層邏輯理解


分析驗證:


對于Python中,正負整數(shù)取余運算:


????????若除數(shù),被除數(shù)同號:


????????????????1) 99 % 7 ? ? ? ? 分解操作 => 7 * 14 + 1 ? , 商為 14 ,余數(shù)為 1 ? ???

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 分解操作=> 7 * 15 +(-6),商為 15,余數(shù)為 -6

????????????????????????

????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 14 ,余數(shù)為 1

??

????????????????2)-99 % (-7) 分解操作 => -7* 14 ?+(-1),商為 14,余數(shù)為 -1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分解操作 => -7*-15 ?+ ? ?6 ? ?,商為 15,余數(shù)為 6


????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 14 ,余數(shù)為 -1


???????????

???????? 若除數(shù),被除數(shù)異號:


????????????????1) 99 % -7 ? ? ? ? 分解操作 => -7 * (-14) + ? ? 1 ? ?, 商為 -14 ,余數(shù)為 1 ?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分解操作 => -7 * (-15) +(-6),商為 -15,余數(shù)為 -6

??

????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 -15 ,余數(shù)為 -6


????????????????2)-99 % 7 ????? ? ?分解操作 => 7*(-14)+(-1),商為 -14,余數(shù)為 -1

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?分解操作 => 7*(-15)+(6),商為 -15,余數(shù)為 6


????????????????????????由開頭的結論得知,python的計算原則是使商盡可能小,所以 取商 -15 ,余數(shù)為 6

?

以上驗證實驗輸出結果。


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI