欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++之Primer算術(shù)運算符詳解

 更新時間:2025年03月19日 09:03:43   作者:c-c-developer  
這篇文章主要介紹了C++之Primer算術(shù)運算符方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

算術(shù)運算符

表算術(shù)運算符(左結(jié)合律)

運算符功能用法
一元正號+ expr
一元負號- expr
*乘法expr * expr
/除法expr / expr
%求余expr % expr
+加法expr + expr
減法expr - expr

表按照運算符的優(yōu)先級將其分組。一元運算符的優(yōu)先級最高,接下來是乘法和除法,優(yōu)先級最低的是加法和減法。優(yōu)先級高的運算符比優(yōu)先級低的運算符組合得更緊密。上面的所有運算符都滿足左結(jié)合律,意味著當優(yōu)先級相同時按照從左向右的順序進行組合。

除非另做特殊說明,算術(shù)運算符都能作用于任意算術(shù)類型以及任意能轉(zhuǎn)換為算術(shù)類型的類型。算術(shù)運算符的運算對象和求值結(jié)果都是右值。在表達式求值之前,小整數(shù)類型的運算對象被提升成較大的整數(shù)類型,所有運算對象最終會轉(zhuǎn)換成同一類型。

一元正號運算符、加法運算符和減法運算符都能作用于指針。己經(jīng)介紹過二元加法和減法運算符作用于指針的情況。當一元正號運算符作用于一個指針或者算術(shù)值時,返回運算對象值的一個(提升后的)副本。

一元負號運算符對運算對象值取負后

返回其(提升后的)副本:

int i = 1024;
int k = -i; //k是-1024
bool b= true;
bool b2 = -b; //b2是true

布爾值不應(yīng)該參與運算,-b就是一個很好的例子。

對大多數(shù)運算符來說,布爾類型的運算對象將被提升為int類型。如上所示,布爾變量b的值為真,參與運算時將被提升成整數(shù)值1,對它求負后的結(jié)果是-1。將-1再轉(zhuǎn)換回布爾值并將其作為b2的初始值,顯然這個初始值不等于0,轉(zhuǎn)換成布爾值后應(yīng)該為1。所以,b2的值是真!

提示:溢出和其他算術(shù)運算異常

  • 算術(shù)表達式有可能產(chǎn)生未定義的結(jié)果。一部分原固是數(shù)學(xué)性質(zhì)本身:例如除數(shù)是0的情況;另外一部分則源于計算機的特點:例如溢出,當計算的結(jié)樞超出試類型所能表示的范國時就會產(chǎn)生溢出。
  • 假設(shè)某個機器的short類型占16位,則最大的shot敏值是32767。在這樣一臺機器上,下面的復(fù)合賦值語句將產(chǎn)生溢出:
short short_value=32767; //如果short類型占16位,則能表示的最大值是 32767
short_value+=1; //該計算導(dǎo)致溢出
cout << “short_value:“ <<short_value<<endl;

給short_value賦值的語句是未定義的,這是因為表示一個帶符號數(shù)32768需要17位,但是short類型只有16位。很多系統(tǒng)在編譯和運行時都不報溢出錯誤;像其他未定義的行為一樣,溢出的結(jié)果是不可預(yù)知的。

在我們的系統(tǒng)中,程序的輸出結(jié)果是

  • short_value : -32768
  • 該值發(fā)生了“環(huán)繞(wrapped around),符號位本來是0,由于溢出被故成了1,于是結(jié)果變成一個負值。在別的系統(tǒng)中也許會有其他結(jié)果,程序的行為可能不同甚至直接崩潰。

當作用于算術(shù)類型的對象時,算術(shù)運算符+、~、*、/的含義分別是加法、減法、乘法和除法。整數(shù)相除結(jié)果還是整數(shù),也就是說,如果商含有小數(shù)部分,直接棄除:

int ival = 21/6;//ival1是3,結(jié)果進行了刪節(jié),余數(shù)被拋棄掉了
int ival2 = 21/7;// ival2是3,沒有余數(shù),結(jié)果是整數(shù)值

運算符%俗稱“取余“或“取模“運算符,負責計算兩個整數(shù)相除所得的余數(shù),參與取余運算的運算對象必須是整數(shù)類型:

int ival = 42;
double dval=3.14;
ival % 12; //正確:結(jié)果是6
ival % dval;//錯誤:運算對象是浮點類型

在除法運算中,如果兩個運算對象的符號相同則商為正(如果不為0的話),否則商為負。C++語言的早期版本允許結(jié)果為負值的商向上或向下取整,C++11新標準則規(guī)定商一律向0取整(即直接切除小數(shù)部分)。

根據(jù)取余運算的定義,如果m和n是整數(shù)且n非0,則表達式(m/n)*n+m%n 的求值結(jié)果與m相等。隱含的意思是,如果m%n不等于0,則它的符號和m相同。C++語言的早期版本允許m%n的符號匹配n的符號,而且商向負無窮一側(cè)取整,這一方式在新標準中已經(jīng)被禁止使用了。除了-m導(dǎo)致溢出的特殊情況,其他時候(-m)/n和m/(-n)都等于-(m/n),m%(-n)等于m%n,(-m)%n等于-(m%n)。

具體示例如下:

int ivall
int ival2

21%6;    /*結(jié)果是3*/  21/6;      /*結(jié)果是3*/
21%7;    /*結(jié)果是0*/  21/7;      /*結(jié)果是3*/
-21%-8;  /*結(jié)果是-5*/ -21/-8;    /*結(jié)果是2*/
21%-5;   /*結(jié)果是1 */ 21/5;      /*結(jié)果是-4*/

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C語言實現(xiàn)簡單通訊錄

    C語言實現(xiàn)簡單通訊錄

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易通訊錄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C?C++輸入輸出基礎(chǔ)教程示例詳解

    C?C++輸入輸出基礎(chǔ)教程示例詳解

    當我們在網(wǎng)站做題的時候經(jīng)常會遇到各種要求的輸入輸出,而且會有時間超限等多個問題,這時我們就要優(yōu)化我們的輸入輸出或者規(guī)范我們的輸入輸出格式,下面介紹C和C++中的輸入輸出問題,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-11-11
  • c++遞歸解數(shù)獨方法示例

    c++遞歸解數(shù)獨方法示例

    這篇文章主要介紹了c++遞歸解數(shù)獨方法示例,需要的朋友可以參考下
    2014-03-03
  • C語言統(tǒng)計輸入字符各個字母出現(xiàn)頻率的解題思路

    C語言統(tǒng)計輸入字符各個字母出現(xiàn)頻率的解題思路

    這篇文章主要介紹了C語言統(tǒng)計輸入字符各個字母出現(xiàn)頻率的解題思路,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-08-08
  • OpenCV實現(xiàn)低對比度圖像臟污區(qū)域檢測

    OpenCV實現(xiàn)低對比度圖像臟污區(qū)域檢測

    本文主要介紹了OpenCV實現(xiàn)低對比度圖像臟污區(qū)域檢測,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • C++獲取文件大小數(shù)值的三種方式介紹

    C++獲取文件大小數(shù)值的三種方式介紹

    最近在做項目時經(jīng)常需要獲得文件的大小操作,雖然在網(wǎng)絡(luò)上已經(jīng)有許多篇博客介紹了,但是還是想總結(jié)出自己一篇,記錄一下自己在項目中是怎么獲得文件大小的
    2022-10-10
  • Matlab實現(xiàn)讀寫txt文件數(shù)據(jù)與進制轉(zhuǎn)換

    Matlab實現(xiàn)讀寫txt文件數(shù)據(jù)與進制轉(zhuǎn)換

    這篇文章主要為大家詳細介紹了Matlab實現(xiàn)讀寫txt文件數(shù)據(jù)與進制轉(zhuǎn)換的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • C++ 多線程編程建議之 C++ 對多線程/并發(fā)的支持(下)

    C++ 多線程編程建議之 C++ 對多線程/并發(fā)的支持(下)

    這篇文章主要介紹的是 C++ 多線程編程建議之 C++ 對多線程/并發(fā)的支持的相關(guān)資料,承接前文 現(xiàn)代 C++ 對多線程/并發(fā)的支持,接下來我們看看回發(fā)生什么吧
    2021-10-10
  • C語言指針類型與野指針引起的原因

    C語言指針類型與野指針引起的原因

    我們C語言獨一無二的特色——指針。說起指針,可能很多人都是還沒學(xué)就已經(jīng)聽說過其鼎鼎大名,因為有很多傳言和玩笑什么的說指針很難,其實大家大可不必有畏難情緒,指針這個東西雖然確實有一定難度,但是這是基于其優(yōu)秀的靈活性而衍生的一點小問題
    2023-02-02
  • C語言實現(xiàn)簡易計算器功能

    C語言實現(xiàn)簡易計算器功能

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)簡易計算器功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01

最新評論