最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語言中四種取整方式,取余/取模運算以及負數取模問題詳解

 更新時間:2021年09月07日 09:57:31   作者:精致的灰(>_<)  
這篇文章主要介紹了C語言中四種取整方式及負數取模問題,包括了算法的分析與改進,是很多程序設計競賽中常見的算法,需要的朋友可以參考下

零向取整、負無窮向取整、正無窮向取整、四舍五入取整

如果將一個浮點數賦值給整形,只會保存整數位:

在這里插入圖片描述

這種取整方式為零向取整,C語言默認采用的是這種方式

在這里插入圖片描述

C語言中也有對應的零向取整函數:

在這里插入圖片描述

在這里插入圖片描述

同理還有一種函數是負無窮大取整:

在這里插入圖片描述

在這里插入圖片描述

它的取整方案是向負無窮大取整:

在這里插入圖片描述

有地板取整,當然也有正無窮大取整的函數:

在這里插入圖片描述

在這里插入圖片描述

它的取整方式是向正無窮大取整:

在這里插入圖片描述

最后,還有四舍五入取整的函數:

在這里插入圖片描述

在這里插入圖片描述

取模/取余

取模概念: 如果a和d是兩個自然數,d非零,可以證明存在兩個唯一的整數 q 和 r,滿足 a = q*d + r 且0 ≤ r < d。其中,q 被稱為商,r 被稱為余數。所以q=a/d,r=a%d。

但是如果對負數取模呢?

在C語言中:

在這里插入圖片描述

在Python中:

在這里插入圖片描述

可以看到這兩種取模結果是不一樣的。

a=-10,d=3;
-10=(-3)*3+(-1)  q=-3,r=-1;  C語言
-10=(-4)*3+2  q=-4,r=2; Python

由上面的例子可以看出,具體余數r的大小,本質是取決于商q的。 而商取決于除法計算的時候的取整規(guī)則。

比如上面的-10/3=-3.3333,如果將商向零整,則結果為-3,此時余數為-1,而如果商向負無窮方向取整,則結果為-4,此時余數為2。

這兩種取整方式,就是取模和取余的區(qū)別:

取余或者取模,都應該要算出商,然后才能得出余數。
取余:盡可能讓商,進行向零取整。
取模:盡可能讓商,向負無窮方向取整

這兩種方式對于商是正數的情況沒有區(qū)別,因為零向取整和負無窮方向取整的結果是一樣的。但如果商的結果是負數,則取余和取模的結果是不一樣的。

所以,參與取余的兩個數據,如果同符號,取模等價于取余,因為商是正數,如果不同符號,則取模和取余不同。

在這里插入圖片描述

綜上,C語言中的%本質其實是取余,Python中的%本質是取模。

并且通過上面的分析,我們可以得出結論:

具體余數r的大小,本質是取決于商q的。而商,又取決于除法計算的時候,取整規(guī)則。
取余和取模: 取余盡可能讓商,進行向零取整。取模盡可能讓商,向負無窮方向取整。
參與取余的兩個數據,如果同符號,取模等價于取余。
如果參與取余的兩個數據符號不同,在C語言中(或者其他采用向0取整的語言如:C++,Java),余數符號,與被除數相同。(因為采用的向0取整)

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注腳本之家的更多內容!

相關文章

  • C++設計模式之單例模式詳解

    C++設計模式之單例模式詳解

    這篇文章主要介紹了C++設計模式之單例模式,本文同時給出了數種單例模式的實現(xiàn)代碼,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • c++回調之利用sink示例

    c++回調之利用sink示例

    Sink的本質是利用C++的封裝、繼承、多態(tài)的面向對象來實現(xiàn),從實現(xiàn)角度來說,更優(yōu)于函數指針回調,下面是示例
    2014-04-04
  • Matlab處理圖像后實現(xiàn)簡單的人臉檢測

    Matlab處理圖像后實現(xiàn)簡單的人臉檢測

    本文主要介紹一下如何使用matlab進行圖像處理后實現(xiàn)人臉檢測,感興趣的可以了解一下
    2021-11-11
  • C++設計模式之原型模式

    C++設計模式之原型模式

    這篇文章主要介紹了C++設計模式之原型模式,本文講解了什么是原型模式、為什么要使用原型模式、代碼實例等內容,需要的朋友可以參考下
    2014-09-09
  • C語言野指針及如何規(guī)避詳解

    C語言野指針及如何規(guī)避詳解

    這篇文章主要為大家介紹了C語言野指針及如何規(guī)避詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • C語言實現(xiàn)簡單的聊天室功能

    C語言實現(xiàn)簡單的聊天室功能

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡單的聊天室功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • 利用C++實現(xiàn)矩陣的相加/相稱/轉置/求鞍點

    利用C++實現(xiàn)矩陣的相加/相稱/轉置/求鞍點

    利用C++實現(xiàn)矩陣的相加/相稱/轉置/求鞍點。需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • C語言判斷字符是否為可打印字符的方法

    C語言判斷字符是否為可打印字符的方法

    這篇文章主要介紹了C語言判斷字符是否為可打印字符的方法,分別為isprint()函數和isgraph()函數的使用,需要的朋友可以參考下
    2015-08-08
  • C語言數組學習之特殊矩陣的壓縮存儲

    C語言數組學習之特殊矩陣的壓縮存儲

    矩陣在計算機圖形學、工程計算中都占有舉足輕重的地位,本文將討論如何將矩陣更有效地存儲在內存中,并且能夠方便地提取矩陣中的元素。感興趣的同學可以了解一下
    2021-12-12
  • 用C++面向對象的方式動態(tài)加載so的方法

    用C++面向對象的方式動態(tài)加載so的方法

    下面小編就為大家?guī)硪黄肅++面向對象的方式動態(tài)加載so的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12

最新評論

商都县| 南城县| 西城区| 溆浦县| 海原县| 布尔津县| 内江市| 城步| 怀柔区| 洪泽县| 洪湖市| 吉安市| 临朐县| 沂水县| 芦溪县| 株洲市| 宁阳县| 彭泽县| 黑龙江省| 嘉荫县| 饶阳县| 镇沅| 永泰县| 南汇区| 大兴区| 安龙县| 炎陵县| 上杭县| 博湖县| 观塘区| 石棉县| 九江县| 高雄市| 福贡县| 宜宾县| 嵊州市| 稻城县| 辽宁省| 衡南县| 康乐县| 方正县|