C#中幾個不常用的操作符
加減乘除不用講了,中國人都會;&&,!=,<,>,等也差不多經常用到,今天來看看主要的幾個二進位制計算的操作符:
~ 運算子對運算元執行按位求補運算,其效果相當於反轉每一位。按位求補運算子是為 int、uint、long 和 ulong 型別預定義的。不用多說例子很重要啊,看了就明白了:
2 using System;
3 class MainClass
4 {
5 static void Main()
6 {
7 int[] values = { 0, 0x111, 0xfffff, 0x8888, 0x22000022};
8 foreach (int v in values)
9 {
10 Console.WriteLine("~0x{0:x8} = 0x{1:x8}", v, ~v);
11 }
12 }
13 }
輸出的結果:
~0x00000111 = 0xfffffeee
~0x000fffff = 0xfff00000
~0x00008888 = 0xffff7777
~0x22000022 = 0xddffffdd
& 運算子既可作為一元運算子也可作為二元運算子。
一元 & 運算子返回運算元的地址(要求 unsafe 上下文)。為整型和 bool 型別預定義了二進位制 & 運算子。對於整型,& 計算運算元的邏輯按位“與”。對於 bool 運算元,& 計算運算元的邏輯“與”;也就是說,當且僅當兩個運算元均為 true 時,結果才為 true。& 運算子計算兩個運算子,與第一個運算元的值無關。
2 using System;
3 class MainClass
4 {
5 static void Main()
6 {
7 Console.WriteLine(true & false); // logical and
8 Console.WriteLine(true & true); // logical and
9 Console.WriteLine("0x{0:x}", 0xf8 & 0x3f); // bitwise and
10 }
11 }
輸出結果:
True
0x38
二元 | 運算子是為整型和 bool 型別預定義的。對於整型,| 計算運算元的按位“或”結果。對於 bool 運算元,| 計算運算元的邏輯“或”結果;也就是說,當且僅當兩個運算元均為 false時,結果才為 false。
2 using System;
3 class MainClass
4 {
5 static void Main()
6 {
7 Console.WriteLine(true | false); // logical or
8 Console.WriteLine(false | false); // logical or
9 Console.WriteLine("0x{0:x}", 0xf8 | 0x3f); // bitwise or
10 }
11 }
輸出結果:
2 False
3 0xff
今天先看看這三個操作符,當然他們有~=,&=,|=操作符,大家也知道他們的意思。從上面的三個例子可以看出~按位求補基本上也就是不足16(16進位制)的用F減去自身來替代自身的數字就OK了。int型別的數字在記憶體中為32位,也就是說每一個數字不過32位的前面加0然後求補。對於&比較多的功能,首先它可以是不安全程式碼指標,記憶體地址的引用,不知道是不是這樣說的,其次可以是二進位制的按位與位數上全是1時才為1,其他為0;如果是邏輯與全為true時才為true,其他為false。而對|操作符來說,只要有一個1就為1,只要有一個為true就為true,除非全是0或false時才是0和false。OK有了這些我們就知道怎樣來計算了(在許可權中應用是不錯的)。
來源:http://www.cnblogs.com/xdotnet/archive/2007/03/22/oprator_and_or_act.html
相關文章
- 我常用的幾個SQL,不斷新增中SQL
- 微軟C# 8.0中的幾個特性微軟C#
- C#中的幾個簡單技術點C#
- C#中遍歷TreeView的兩個常用方法C#View
- 前端幾個常用簡單的開發手冊拿走不謝前端
- GCD常用的幾個方法GC
- git的幾個常用基本操作Git
- 幾個常用函式的使用函式
- 常用的幾個典型指令碼指令碼
- RxJava常用操作符RxJava
- C# Modbus協議 幾種常用格式C#協議
- 日常開發中的幾個常用跨域處理方式跨域
- SQLServer中需要經常用到的幾個設定選項SQLServer
- Spring中11個最常用的擴充套件點,你知道幾個?Spring套件
- 常用的Linux,記住了幾個?Linux
- Nginx的幾個常用配置和技巧Nginx
- 《安全測試常用的幾個工具》
- javascript除錯的幾個常用技巧JavaScript除錯
- 幾個常用監控工具的使用
- Git的幾個常用命令Git
- IOS幾個常用類庫的用法iOS
- 常用的幾個eclipse快捷鍵Eclipse
- 幾個常用的Ajax庫小節
- Cesium 比較常用的幾個方法
- Kotlin中的幾個常用函式let with run also applyKotlin函式APP
- AppDelegate中幾個常用回撥函式的呼叫時機APP函式
- python 的幾個常用的函式Python函式
- [php]幾個常用函式PHP函式
- 關於c#多執行緒中的幾個訊號量C#執行緒
- Java的幾個不錯的網站Java網站
- Java中幾個常用併發佇列比較 | BaeldungJava佇列
- MongoDB的常用Query操作及操作符MongoDB
- 深入 TypeScript – 2( 幾個常用的小技巧)TypeScript
- 幾個常用的網路診斷命令
- 常用的幾個陣列操作方法陣列
- C# Math 中的常用的數學運算C#
- js中建立物件的幾種常用方式JS物件
- C#開發中,學習整理的 New 的幾個常見問題C#