美文网首页
12.C# 位运算与位移运算符

12.C# 位运算与位移运算符

作者: 技术老小子 | 来源:发表于2024-02-23 07:34 被阅读0次

摘要


位运算符是一种较为特殊的运算符,和之前介绍的四种运算符不同的是,位运算符直接作用于位(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}");

image.png

位左移运算

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

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

位右移运算

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

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

image.png

相关文章

  • 位运算

    运算符含义&按位与|按位或^按位异或~取反<<左位移>>右位移 按位与运算符(&)按位与运算将两个运算分量的对应位...

  • 开发基础随笔之位运算符(Bitwise Operators)

    位运算符,属于算术运算符 按位逻辑运算符: 位移运算符: 位运算符的运算数只能是整数 位移运算符:按位左移 a<<...

  • java 三种运算符理解

    >> : 右移运算符;低位移出,符号位不变 << : 左移运算符;高位移出,符号位不变 >>> : 无符号右移; ...

  • java中的运算符

    内容 算数运算符 赋值运算符 比较运算符 逻辑运算符 位运算符 位移运算符 三元运算符java中的运算符,有以下几...

  • Swift - 高级运算符介绍

    除了基本运算符之外,Swift还支持位运算和位移运算,包括:1、按位取反运算:操作符是 ~2、按位与运算:操作符是...

  • 运算符

    在C语言中的运算符和我们平时用的基本上都差不多。运算符包括赋值运算符、算术运算符、逻辑运算符、位逻辑运算符、位移运...

  • java位运算

    位运算符主要有3个:有符号右位移>>,有符号左位移<<,无符号右位移>>>,位运算的操作的对象是二进制的位,通过位...

  • 强大的位运算符

    位取反运算符 位取反运算符(~)是对所有位的数字进行取反操作位取反运算符.png 位与运算符 位与运算符(&)可以...

  • 位运算实用技巧(Java实现)

    1. Java支持的位运算符: &:按位与 |:按位或 ~:按位非(Esc下面那个键) ^:按位异或 <<:左位移...

  • 基础运算符

    [使1. 按位与运算符(&](#1. 按位与运算符(&)[按位或运算符 | ](#2. 按位或运算符(|)) 1....

网友评论

      本文标题:12.C# 位运算与位移运算符

      本文链接:https://www.haomeiwen.com/subject/sqlgadtx.html