服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#位运算以及实例计算详解

C#位运算以及实例计算详解

2022-07-28 10:50艾三元 C#

这篇文章主要给大家介绍了关于C#位运算以及实例计算的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言:

平时在实际工作中很少用到这个,虽然都是一些比较基础的东西,但一旦遇到了,又不知所云。刚好最近接触了一些相关这方面的项目,所以也算是对 这些内容重新温习实践了一遍。所以这篇不仅作为个人备忘,也分享给各位重温一遍。

要学会位运算,首先要清楚什么是位运算?程序中的所有内容在计算机内存中都是以二进制的形式储存的(即:0或1),位运算就是直接对在内存中的二进制数的每位进行运算操作。

了解:

在c#中可以对整型运算对象按位进行逻辑运算。按位进行逻辑运算的意义是:依次取被运算对象的每个位,进行逻辑运算,每个位的逻辑运算结果是结果值的每个位

 

运算符号
意义
运算对象类型
运算结果类型
对象数
实例
~
位逻辑非运算
整型,字符型
整型
1
~a
&
位逻辑与运算
2
a & b
|
位逻辑或运算
2
a | b
^
位逻辑异或运算
2
a ^ b
<< 
位左移运算
2
a<<4
>> 
位右移运算
2
a>>2

 

开始:

一、位逻辑非运算

位逻辑非运算是单目的,只有一个运算对象。位逻辑非运算按位对运算对象的值进行非运算。符号为:~

即:如果某一位等于0,就将其转变为1;如果某一位等于1,就将其转变为0

对二进制的10010001进行位逻辑非运算,结果等于01101110

用十进制:~145等于110

二、位逻辑与运算

位逻辑与运算将两个运算对象按位进行与运算。符号为&。

运算规则为:1&1=1;0&1=0;0&0=0

?
1
2
3
4
5
6
7
#region 位运算与运算
   int a = 11; //11的二进制是0000 1011
   int b = 13; //13的二进制是0000 1101
   console.writeline(a & b); //11 & 13的结果就是0000 1001 即结果是9
   console.read();
 
   #endregion

C#位运算以及实例计算详解

三、位逻辑或运算

位逻辑或运算将两个运算对象按位进行或运算。符号为 |

运算规则为:1|1=1;1|0=1;0|0=0

?
1
2
3
4
5
6
#region 位运算或运算
int a = 11; //11的二进制是0000 1011
int b = 13; //13的二进制是0000 1101
console.writeline(a | b); //11 | 13的结果就是0000 1111 即结果是15
console.read();
#endregion

C#位运算以及实例计算详解

四、位逻辑异或运算

位逻辑异或运算将两个运算对象按位进行异或运算。符号为^

运算规则:1^1=0;1^0=1;0^0=0 (相同得0,相异得1)

?
1
2
3
4
5
6
#region 位运算异或运算
int a = 11; //11的二进制是0000 1011
int b = 13; //13的二进制是0000 1101
console.writeline(a ^ b); //11 ^ 13的结果就是0000 0110 即结果是6
console.read();
#endregion

C#位运算以及实例计算详解

五、位左移运算

位左移运算将整个数按位左移若干位,左移后空出的部分0。符号为:<<

运算规则:a<<1 =a乘以2的1次方;a<<2 =a乘以2的2次方;a<<3 =a乘以2的3次方

?
1
2
3
4
5
#region 位左移运算
int a = 11; //11的二进制是0000 1011
console.writeline(a << 2); //0000 1011 左位移2位的结果就是0010 1100 即结果是44 (11*2^2=44)
console.read();
#endregion

C#位运算以及实例计算详解

六、位右移运算

位右移运算将整个数按位右移若干位,右移后空出的部分填0。符号为:>>

运算规则:a>>1 = a整除2的1次方;a>>2 = a整除2的2次方;a>>3 = a整除2的3次方

?
1
2
3
4
5
#region 位右移运算
int a = 11; //11的二进制是0000 1011
console.writeline(a >> 2); //0000 1011 右位移2位的结果就是0000 0010 即结果是2 (11÷(2^2)=2)
console.read();
#endregion

C#位运算以及实例计算详解

总结:

1.位运算,虽然平时很少用到位运算符,但是在某些时候,这些确实能够给我们提供很好的解决方案。

2.在实际应用中,不断的重温基础的知识,加强巩固。毕竟很多时候,只有将基础的知识打牢固,后续才能更好的功能拓展和衍生

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。

原文链接:https://www.cnblogs.com/i3yuan/p/11141016.html

延伸 · 阅读

精彩推荐
  • C#C#无损转换Image为Icon的方法

    C#无损转换Image为Icon的方法

    这篇文章主要为大家详细介绍了C#无损转换Image为Icon的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    AhDung5152021-12-30
  • C#C#操作ftp类完整实例

    C#操作ftp类完整实例

    这篇文章主要介绍了C#操作ftp类,以一个完整实例形式详细分析了C#操作FTP文件传输所涉及的FTP连接、文件传输、参数设置、文件删除等技巧,具有一定参考借...

    我心依旧12082021-10-24
  • C#C#中创建PDF网格并插入图片的方法

    C#中创建PDF网格并插入图片的方法

    这篇文章我将向大家演示如何以编程的方式在PDF文档中创建一个网格,并将图片插入特定的网格中。对c# pdf 网格 插入图片的知识感兴趣的朋友一起看看吧...

    Yesi11832021-12-09
  • C#Windows中使用C#为文件夹和文件编写密码锁的示例分享

    Windows中使用C#为文件夹和文件编写密码锁的示例分享

    这篇文章主要介绍了Windows中使用C#为文件夹和文件编写密码锁的示例分享,特别是文件锁可以针对各种类型的文件输入密码进行加密解密,非常实用,需要的朋...

    DebugLZQ8702021-11-15
  • C#C# 泛型参数转换

    C# 泛型参数转换

    本文介绍了C# 泛型参数转换的相关知识,具有很好的参考价值,下面跟着小编一起来看下吧...

    诺贝尔12242021-12-23
  • C#MVC设定默认路由为指定的Area下的某个action

    MVC设定默认路由为指定的Area下的某个action

    今天小编就为大家分享一篇关于MVC设定默认路由为指定的Area下的某个action,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一...

    chenqiangdage7082022-03-08
  • C#winform简单缓存类实例

    winform简单缓存类实例

    这篇文章主要介绍了winform简单缓存类,涉及C#缓存使用技巧,非常简单实用,需要的朋友可以参考下...

    我心依旧10842021-10-25
  • C#C#获得程序的根目录以及判断文件是否存在的实例讲解

    C#获得程序的根目录以及判断文件是否存在的实例讲解

    今天小编大家分享一篇C#获得程序的根目录以及判断文件是否存在的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    燚夜7152022-07-27