10.C# 位运算与位移运算符_c++位移运算

10.C# 位运算与位移运算符_c++位移运算

编码文章call10242025-02-05 18:09:4817A+A-

摘要

位运算符是一种较为特殊的运算符,和之前介绍的四种运算符不同的是,位运算符直接作用于位(bit),并依次按位进行操作,而我们也知道,在计算机中所有的数据都是以二进制的形式保存的,而非十进制,因此,位运算符的使用不能再像以往一样在十进制的角度进行考虑了,它的操作都是以二进制位来进行处理的,所以在理解上还会有一定的难度。

正文

C#支持的位逻辑运算符如表






运算符号

意义

运算对象类型

运算结果类型

对象数

实例

~

位逻辑运算

整型,字符型

整型

1

~a

&

位逻辑运算

整型,字符型

整型

2

a & b



位逻辑运算

整型,字符型

整型

2

^

位逻辑异或运算

整型,字符型

整型

2

a ^ b

<<

左移运算

整型,字符型

整型

2

a<<4

>>

右移运算

整型,字符型

整型

2

a>>2

位逻辑非运算

位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算,即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0。注意最高位的1是符号位。

int x = 12;//00001100
int y = 8;// 00001000
Console.WriteLine(~x);//11110011



位逻辑与运算

位逻辑与运算将两个运算对象按位进行与运算。与运算的规则:1与1等于1,1与0等于0。

int x = 12;//1100
int y = 8;//1000
Console.WriteLine(x&y);//1000

位逻辑或运算

位逻辑或运算将两个运算对象按位进行或运算。或运算的规则是:1或1等1,1或0等于1,0或0等于0

int x = 12;//00001100
int y = 8;//00001000
Console.WriteLine(x|y);//00001100

位逻辑异或运算

位逻辑异或运算将两个运算对象按位进行异或运算。异或运算的规则是:1异或1等于0,1异或0等于1,0异或0等于0。

int x = 12;//00001100
int y = 8;// 00001000
Console.WriteLine(x^y);//00000100

一个简单加密操作

我们可以设置一个加密KEY,与用户输入的密码与一下

Console.WriteLine("请输入密码:");
int pwd = Convert.ToInt32(Console.ReadLine());
int key = 8;
Console.WriteLine($"加密后密码:{pwd ^ key}");



位左移运算

位左移运算将整个数按位左移若干位,左移后空出的部分0。左移相当于乘以2的n次幂。

int x = 48;//00110000
Console.WriteLine(x<<2);

位右移运算

位右移运算将整个数按位右移若干位,右移后空出的部分填0。右移相当于除以2的n次幂。

int x = 8;//00001000 Console.WriteLine(x>>2);


点击这里复制本文地址 以上内容由文彬编程网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

文彬编程网 © All Rights Reserved.  蜀ICP备2024111239号-4