国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C#位運算符的基本用法

2019-11-17 02:57:57
字體:
來源:轉載
供稿:網友

C#位運算符的基本用法

位運算符包括:| 按位或 OR,& 按位與 AND,^ 按位異或 XOR,~ 取反 NOT,<< 左移 Left Shift,>> 右移 Right Shift,等等。本篇體驗位運算符在C#中的應用。主要包括:

○ 進制轉換 ※ 十進制轉換成二進制 ※ 二進制轉換成十進制○ | 按位或操作符○ & 按位與操作符○ ^ 按位異或操作符 ※ 使用^按位異或交換2個數 ※ 使用^按位異或進行加密運算○ ~ 取反操作符○ x << n 左移運算符○ x >> n 右移運算符

進制轉換

因為位運算是在二進制基礎上進行的,所以進制轉換是位運算的前提。

□ 十進制轉換成二進制

比如,把10進制的數783轉換成二進制,經過下面10個步驟。

1把余數從下到上拼接起來,就是783的二進制,即1100001111。

在C#中,如果是Int16類型,意味著有16位整型數。對于783來說,如果表示成Int16類型,不足16位的話,要在前面補0,即要在1100001111補6個0,完整的表示是:0000001100001111。同樣的道理,如果是Int32類型,意味著有32位整型數。

如何把-783轉換成Int16類型的二進制呢?

→我們知道正數783表示成Int16類型的二進制是:0000001100001111→在每個位置上倒轉,即如果是1就變成0,反之亦然,倒轉后變成:1111110011110000→再加上1,變成:1111110011110001

□二進制轉換成十進制

比如,把Int16類型的二進制數0000000100010110轉換成十進制,經過下面的16個步驟。

從右向左,依次乘以2的n次方。2把所有的結果加起來:0 + 2 + 4 + 0 + 16 + 0 + 0 + 0 + 256 + 0 = 2 + 4 + 16 + 256 = 278所以,0000000100010110的十進制數是278。

如何把一個Int16類型的負二進制數轉換成十進制呢?

比如有這樣的一個二進制數:1111111111010011(Int16類型,第一位是數字1表示負數,第一位是數字0表示正數)→每個位置上反轉變成:0000000000101100→進過計算,得到的十進制數是:44→再加1,得到:45→再變成負數,得到:-45

| 按位或操作符

假設,十進制數38和53進行按位或計算。→經過計算,十進制數38的二進制表達是00100110,十進制數538的二進制表達是00110101。→對| 按位或操作符來說,只要對應的二個二進位有一個為1時,結果就為1。3→把得到的00110111轉換成十進制就是:55

如果用C#表示就是:

byte result = 38 | 53;

& 按位與操作符

假設,十進制數76和231進行按位與計算。→經過計算,十進制數76的二進制表達是01001100,十進制數231的二進制表達是11100111。→對& 按位與操作符來說,只要對應的二個二進位有一個為0時,結果就為0。4→把得到的 01000100轉換成十進制就是:68

如果用C#表示就是:

byte result = 76 & 231;

^ 按位異或操作符

假設,十進制數138和43進行按位與計算。→經過計算,十進制數138的二進制表達是10001010,十進制數43的二進制表達是00101011。→對^ 按位異或操作符來說,當兩對應的二進位相異時,結果為1。5→把得到的10100001轉換成十進制就是:161

如果用C#表示就是:

byte result = 138 ^ 43 ;

□ 例子1:使用^ 按位異或交換2個數

int x = 4; 
int y = 6;
x ^= y;
y ^= x;
x ^= y;
Console.WriteLine(x); //6
Console.WriteLine(y); //4

以上過程是這樣的:(1)x ^= y,相當于x = x ^ yx的二進制是:00100y的二進制是:00110x和y進行異或,結果是:00010x轉換成十進制后,x為:2

(2)y ^= x,相當于y = y ^ xy的二進制是:00110x的二進制是:000

上一篇:C#string詳解

下一篇:Unity3d網格合并

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 长子县| 资中县| 岗巴县| 水城县| 瑞昌市| 祁连县| 岳池县| 琼中| 岢岚县| 南郑县| 泰州市| 淮阳县| 余江县| 封丘县| 千阳县| 获嘉县| 赤城县| 栾川县| 平阴县| 盖州市| 炎陵县| 新安县| 芒康县| 南汇区| 建德市| 芜湖县| 惠水县| 玛多县| 保康县| 天等县| 丹寨县| 枣庄市| 铜山县| 丰城市| 天峨县| 丹阳市| 公安县| 张掖市| 石城县| 石城县| 芮城县|