程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 《C# to IL》第四章 關鍵字和操作符(下)(15)

《C# to IL》第四章 關鍵字和操作符(下)(15)

編輯:關於C語言

^符號被稱為XOR操作符。 XOR就像一個OR語句,但是有一點不同:OR只有當它的一個操作數為TRUE(其它的操作數為FALSE)時才會 返回TRUE。即使這兩個操作數都是TRUE,它也會返回FALSE。xor是一個IL指令。

!=操作符被轉換 為一組常規的IL指令,即完成一次比較操作,而程序會相應地進入分支。

a.cs

class zzz
{
public static void Main()
{
bool x = true;
System.Console.WriteLine(!x);
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends [mscorlib]System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
.locals (bool V_0)
ldc.i4.1
stloc.0
ldloc.0
ldc.i4.0
ceq
call void [mscorlib]System.Console::WriteLine(bool)
ret
}
}

Output

False

C#中的!操作符會被轉換為TRUE或 FALSE,反之亦然。在IL中,使用指令ceq。這個指令檢查了棧上最後的2個參數。如果它們相同,就返回 TRUE;否則,就返回FALSE。

由於變量x為TRUE,它會被初始化為1。此後,會檢查它是否和0相同 。因為它們是不相等的,結果為0或FALSE。這個結果會被放到棧上。同樣適用的邏輯使x為FALSE。0將會 被放到棧上,並檢查它是否和另一個0相等。由於它們是匹配的,所以最後的答案將會是TRUE。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved