4、位运算符
运算符 描述
& 与 位运算符,当两个操作数均为1 ,则结果为1,其余均为0
| 或 位运算符, 当两个操作数均为0,则结果为0,其余均为1
^ 异或 运算符,当两个操作均为0或1,则结果为0,其余结果为1
~ 按位取反 运算符,具有翻转位的效果,可将0变1,1变0
<< 二进制左移运算符。左操作数的值向左移动右操作数的位数
>> 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。
辅助理解的案例代码如下:
static void Main(string[] args){
//60 和13 转换位二进制分别是111100 和 1101 ,不足8位【前面】使用0补足
int a = 60; /* 60 = 0011 1100 */
int b = 13; /* 13 = 0000 1101 */
int c = 0;
c = a & b;// a 0011 1100// b 0000 1101
//----------------- 根据&运算符规则:只有均为1的时候,结果才为1,否则均为0
// c 0000 1100===>转换为十进制 则是12
Console.WriteLine("Line 1 - c 的值是 {0}", c);
c = a | b;// a 0011 1100// b 0000 1101
//----------------- 根据|运算符规则:只有均为0的时候,结果才为0,否则均为1
// c 0011 1101===>转换为十进制 则是61
Console.WriteLine("Line 2 - c 的值是 {0}", c);
c = a ^ b;// a 0011 1100// b 0000 1101
//----------------- 根据^运算符规则:只有均为0或1的时候,结果才为0,否则均为1
// c 0011 0001===>转换为十进制 则是49
Console.WriteLine("Line 3 - c 的值是 {0}", c);
c = ~a; /*-61 = 1100 0011 */
// a 0011 1100
//取反----------------- 根据~运算符规则:将0变1 ,1变0
// c 1100 0011===>转换为十进制 则是-61
Console.WriteLine("Line 4 - c 的值是 {0}", c);
c = a << 2; // a 0011 1100//左移----------------- 0011 1100 向左移动两位则将前面两位00 移掉了,然后后面补足两位00
// c 1111 0000===>转换为十进制 则是240
Console.WriteLine("Line 5 - c 的值是 {0}", c);
c = a >> 2; // a 0011 1100//右移----------------- 0011 1100 向右移动两位则将后面两位00 移掉了,然后前面补足两位00
// c 0000 1111===>转换为十进制 则是15
Console.WriteLine("Line 6 - c 的值是 {0}", c);
Console.ReadLine();
}
c# 上位机位运算符
最新推荐文章于 2024-06-15 09:07:54 发布