位运算符知识点

位运算符主要用来数字类型进行计算的。
将数值住换位2进制,在进行位运算。

位与 &

规则:连接两个数值进行位运算,将数值转为2进制。
对位运算,有0则0。

int a = 1;//001
int b = 5;//101
//  001
//& 101
//  001 => 1
int c = a & b;
Console.WriteLine(c);

a = 3;//011
b = 19;//10011
//  00011
//& 10011
//  00011
c = a & b;//3
Console.WriteLine(c);

多个数值进行位运算,没有括号时,从左到右依次计算。

a = 1;//001
b = 5;//101
c = 19;//10011
//  00001
//& 00101
//  00001
//& 10011
//  00001
int d = a & b & c;
//位于规则结果和最小的数一样
Console.WriteLine(d);

a = 1;//001
b = 2;//010
Console.WriteLine(a & b);

位或 |

规则:连接两个数值进行位运算,将数值转为2进制。
对位运算,有1则1。

a = 1;//001
b = 3;//011
c = a | b;
//  001
//| 011
//  011
Console.WriteLine(c);

a = 5;//101
b = 10;//1010
c = 20;//10100
//      00101
//  |   01010
//      01111
//  |   10100
//      11111 => 1 + 2 + 4 + 8 + 16 = 31
Console.WriteLine(a | b | c);

异或 ^

规则:连接两个数值进行位运算,将数值转为2进制。
相同为0,不同为1。

a = 1;//001
b = 5;//101
//      001
//  ^   101
//      100
Console.WriteLine(a ^ b);
a = 10;//1010
b = 11;//1011
c = 4;//100
//      1010
//  ^   1011
//      0001
//  ^   0100
//      0101    =   5
Console.WriteLine(a ^ b ^ c);

位取反 ~

规则:连接两个数值进行位运算,将数值转为2进制。
对位运算,0变1,1变0

 a = 5; 
 // 0000 0000 0000 0000 0000 0000 0000 0101
 // 1111 1111 1111 1111 1111 1111 1111 1010
 // 反码补码知识  
 c = ~a;
 Console.WriteLine(c);

左移<< 和 右移>>

规则:让一个数的2进制数进行左移和右移。
左移几位,右侧加几个0。

a = 5; // 101
c = a << 5;
// 1位 1010
// 2位 10100
// 3位 101000
// 4位 1010000
// 5位 10100000 = 32 + 128 = 160
Console.WriteLine(c);

// 右移几位 右侧去掉几个数

a = 5; // 101
c = a >> 2;
// 1位 10
// 2位 1
Console.WriteLine(c);
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不背完3500个考研英语词汇不改名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值