W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
為所有數(shù)字類型定義算術(shù)運(yùn)算符(+, - ,*,/,%)。
運(yùn)算符 | 含義 |
---|---|
+ | 加 |
- | 減 |
* | 剩 |
/ | 除 |
% | 求余 |
自增和自減運(yùn)算符(++, --)將數(shù)值類型遞增和遞減1。
操作符可以跟隨也可以在變量之前,取決于我們希望其值在增加/減少之前還是之后。
例如:
int x = 0, y = 0;
Console.WriteLine (x++); // Outputs 0; x is now 1
Console.WriteLine (++y); // Outputs 1; y is now 1
整數(shù)類型的除法運(yùn)算總是截?cái)嘤鄶?shù)。
除以值為零的變量會(huì)生成運(yùn)行時(shí)錯(cuò)誤。
除以文字或常量0會(huì)產(chǎn)生編譯時(shí)錯(cuò)誤。
在運(yùn)行時(shí),對(duì)整數(shù)類型的算術(shù)運(yùn)算可能溢出。
例如,遞減最小可能的int
值導(dǎo)致最大可能的int
值:
int a = int.MinValue;
a--;
Console.WriteLine (a == int.MaxValue); // True
checked
運(yùn)算符告訴運(yùn)行時(shí)生成一個(gè)OverflowException
,而不是在溢出的情況下無聲地溢出。
checked
運(yùn)算符在整數(shù)類型之間使用++, - ,+, - ,*,/和顯式轉(zhuǎn)換運(yùn)算符影響表達(dá)式。
checked
運(yùn)算符對(duì)double和float類型沒有影響。
checked
運(yùn)算符對(duì)始終檢查的十進(jìn)制類型沒有影響。
checked
可以在表達(dá)式或語句塊周圍使用。
例如:
int a = 1000000;
int b = 1000000;
int c = checked (a * b); // Checks just the expression.
// Checks all expressions in statement block.
checked{
...
c = a * b;
...
}
我們可以通過使用/checked+
命令行開關(guān)編譯來檢查程序的所有算術(shù)溢出。
要禁用特定表達(dá)式或語句的溢出檢查,請(qǐng)使用unchecked
的運(yùn)算符。
例如,以下代碼不會(huì)拋出異常 - 即使使用/ checked +
:
int x = int.MaxValue;
int y = unchecked (x + 1);
unchecked { int z = x + 1; }
不管 /checked
編譯器切換,在編譯時(shí)評(píng)估的表達(dá)式總是被overflow-checked - 除非我們應(yīng)用unchecked
運(yùn)算符:
int x = int.MaxValue + 1; // Compile-time error
int y = unchecked (int.MaxValue + 1); // No errors
C#支持以下位運(yùn)算符:
運(yùn)算符 | 含義 | 示例表達(dá)式 | 結(jié)果 |
---|---|---|---|
~ | Complement | ~0xfU | 0xfffffff0U |
& | And | 0xf0& 0x33 | 0x30 |
| | Or | 0xf0 | 0x33 | 0xf3 |
^ | Exclusive Or | 0xff00 ^ 0x0ff0 | 0xf0f0 |
<< | Shift left | 0x20<< 2 | 0x80 |
>> | Shift right | 0x20>> 1 | 0x10 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: