位元運算子只不過是在位元層級上進行的運算,C# 允許使用 AND、OR、NOT 等運算子進行各種位元運算。通常用於位元運算的運算子是AND (&),它傳回true當兩個運算元都為true 時,OR (|) 僅當運算元為true 時傳回true,Exclusive OR(XOR 或^)依輸入傳回可比較的結果,Left Shift (>) 用於將位元向右移動,補碼(~) 用於單一操作數,它根據輸入返回補碼位值。
以下是 C# 中定義的各種類型的位元運算子:
下面的文章解釋了位元運算子的工作原理,下面提到的是 C# 中位元運算子的範例:
如果兩個值都為 True,則在使用 AND 運算時僅給出 True。此運算符可以使用“&”運算符來實現。
範例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 byte myvarB = 20;// This binary is equivalent for 20 is 10100 long myresult = myvarA & myvarB; // The result of AND operation result is: 00000 Console.WriteLine("{0} AND {1} result is :{2}",myvarA,myvarB,myresult); myvarA = 10;// This binary is equivalent for 10 is 01010 myvarB = 10;// This binary is equivalent for 10 is 01010 myresult = myvarA & myvarB; // The result of AND operation result is: 01010 Console.WriteLine("{0} AND {1} result is : {2}",myvarA,myvarB,myresult); } }
輸出:
開啟文字編輯器並使用您選擇的名稱儲存副檔名為 .cs 的檔案。使用合適的 C# 編譯器執行程序,您將得到以下輸出:
如果兩個值都是 FALSE,則在使用 OR 方法時僅提供 FALSE。 OR 運算在所有其他情況下均成立。該運算子可以使用‘|’運算子來實現。
範例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 byte myvarB = 20;// This binary is equivalent for 20 is 10100 long myresult = myvarA | myvarB; // The result of OR operation result is: 11110 Console.WriteLine("{0} OR {1} result is :{2}",myvarA,myvarB,myresult); myvarA = 10;// This binary is equivalent for 10 is 01010 myvarB = 10;// This binary is equivalent for 10 is 01010 myresult = myvarA | myvarB; // The result of OR operation result is: 01010 Console.WriteLine("{0} OR {1} result is : {2}",myvarA,myvarB,myresult); } }
輸出:
編譯並執行上面的程式碼,你將得到以下輸出:
如果相關位元唯一,則給予 1,否則給予 0。此運算符可以使用“^”運算符來實現。
範例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int num1 = 14, num2 = 11, myresult; myresult = num1^num2; Console.WriteLine("{0} ^ {1} = {2}", num1, num2, myresult); } }
輸出:
編譯並執行上面的程式碼,你將得到以下輸出:
如果對二進位值執行右移運算,則這些位元會移到右側的一個位置。該運算子可以透過使用‘>>’運算子來實現。
範例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 long myresult = myvarA >> 1; // The right shift operation result is : 0101 Console.WriteLine("{0} is right shifted to 1 position result is:{1}",myvarA,myresult); } }
輸出:
編譯並執行上面的程式碼,你將得到以下輸出:
如果使用二進位值執行 LeftShift 運算,則這些位元將會移到左側的一個位置。此運算符可以使用“
範例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { byte myvarA = 10;// This binary is equivalent for 10 is 01010 long myresult = myvarA << 1; // The left shift operation result is : 10100 Console.WriteLine("{0} is left shifted to 1 position result is:{1}",myvarA,myresult); } }
輸出:
編譯並執行上面的程式碼,你將得到以下輸出:
按位求補運算子由「~」指定,它是一種僅對一個運算元進行運算的一元運算子。 ~ 運算子反轉一點,即從 1 切換到 0 以及從 0 切換到 1。
範例:
using System; using System.Collections.Generic; using System.Linq; public class Program { public static void Main() { int num = 22, num_result; num_result = ~num; Console.WriteLine("~{0} = {1}", num, num_result); } }
輸出:
編譯並執行上面的程式碼,你將得到以下輸出:
在本文中,我們了解如何在 C# 中使用位元運算子及其功能。這些運算子用於對操作數(也稱為二進位數字)執行逐位運算。位元運算子逐個單元分析兩個輸入函數的二進位解釋。這些運算符主要用於通訊堆疊,其中重要資訊由連接到資料的標頭中的各個位元來表示。
以上是C# 中的位元運算符的詳細內容。更多資訊請關注PHP中文網其他相關文章!