位运算逻辑与逻辑或逻辑非运算 c# 中如何使用

原文举例:https://www.runoob.com/csharp/csharp-operators.html

假设如果 A = 60,且 B = 13,现在以二进制格式表示,它们如下所示:

A = 0011 1100

B = 0000 1101

运算符描述实例个人理解
& 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 (A & B) 将得到 12,即为 0000 1100。

 逻辑与运算符。如果双方都为1则为1,否则返回0。

用途:0xFF & n ,求n的最后一个字节值;

   0xFFFF & n,求n的最后2个字节值

  

| 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 (A | B) 将得到 61,即为 0011 1101 逻辑或运算符。如果双方有一个或2个都为1,则为1,否则为0。
^ 如果存在于其中一个操作数中但不同时存在于两个操作数中,二进制异或运算符复制一位到结果中。 (A ^ B) 将得到 49,即为 0011 0001 逻辑异或运算符。
~ 按位取反运算符是一元运算符,具有"翻转"位效果,即0变成1,1变成0,包括符号位。 (~A ) 将得到 -61,即为 1100 0011,一个有符号二进制数的补码形式。  逻辑非运算。如果双方都为1则为0,否则为0
<< 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 A << 2 将得到 240,即为 1111 0000 左移运算符 
>> 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 A >> 2 将得到 15,即为 0000 1111  右移运算符
posted @ 2021-07-12 19:51  七微月ok  阅读(249)  评论(0编辑  收藏  举报