C# 位运算符整理

C# 位运算符整理攻略

概述

在C#中,位运算符可以用于对二进制位进行逻辑运算。C#中的常见位运算符有:

  • 按位与(&)
  • 按位或(|)
  • 按位异或(^)
  • 取反(~)
  • 左移(<<)
  • 右移(>>)

按位与(&)

按位与运算符将两个数的二进制位进行比较,如果两个二进制位都为1,则该位的结果为1,否则为0。

示例代码:

int a = 5; // 二进制表示为:00000101
int b = 3; // 二进制表示为:00000011
int c = a & b; // c的二进制表示为:00000001,即1

Console.WriteLine(c);

输出结果为:1

按位或(|)

按位或运算符将两个数的二进制位进行比较,如果两个二进制位中有至少一个为1,则该位的结果为1,否则为0。

示例代码:

int a = 5; // 二进制表示为:00000101
int b = 3; // 二进制表示为:00000011
int c = a | b; // c的二进制表示为:00000111,即7

Console.WriteLine(c);

输出结果为:7

按位异或(^)

按位异或运算符将两个数的二进制位进行比较,如果两个二进制位不相同,则该位的结果为1,否则为0。

示例代码:

int a = 5; // 二进制表示为:00000101
int b = 3; // 二进制表示为:00000011
int c = a ^ b; // c的二进制表示为:00000110,即6

Console.WriteLine(c);

输出结果为:6

取反(~)

取反运算符将一个数的二进制位全部取反,即将0变为1,将1变为0。

示例代码:

int a = 5; // 二进制表示为:00000101
int b = ~a; // b的二进制表示为:11111010,即-6

Console.WriteLine(b);

输出结果为:-6

左移(<<)

左移运算符将一个数的二进制位向左移动若干位,低位补0。移动的位数由运算符右侧的数值确定。

示例代码:

int a = 5; // 二进制表示为:00000101
int b = a << 2; // b的二进制表示为:00010100,即20

Console.WriteLine(b);

输出结果为:20

右移(>>)

右移运算符将一个数的二进制位向右移动若干位,高位补0。移动的位数由运算符右侧的数值确定。

示例代码:

int a = 20; // 二进制表示为:00010100
int b = a >> 2; // b的二进制表示为:00000101,即5

Console.WriteLine(b);

输出结果为:5

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 位运算符整理 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#开发Windows服务实例之实现禁止QQ运行

    C#开发Windows服务实例之实现禁止QQ运行 1. 概述 在Windows操作系统下,我们可以通过禁止某些进程的运行来增强系统的安全性。比如,我们可以通过开发一个Windows服务程序,实现禁止QQ程序的运行。 2. 开发步骤 2.1 创建Windows服务 首先,我们需要在Visual Studio中创建一个Windows服务项目,具体步骤如下: 打开…

    C# 2023年5月15日
    00
  • C#函数式程序设计之用闭包封装数据的实现代码

    当我们编写函数式程序时,往往需要通过一些手段来封装数据,保证程序的不变性和可维护性。而闭包就是这样一种手段。在C#中,可以使用匿名函数和Lambda表达式来实现闭包。 首先,让我们看看一个示例,该示例演示了如何使用闭包来封装数据。 public static Func<int> CreateCounter(int start, int step)…

    C# 2023年6月6日
    00
  • SQL Server中实现二进制与字符类型之间的数据转换

    SQL Server 中实现二进制与字符类型之间的数据转换主要涉及到以下两种类型的转换: 将二进制数据转换为字符类型数据 在 SQL Server 中,可以使用 CAST 和 CONVERT 函数将二进制数据转换成字符类型数据。 示例1:将二进制数据转换为十六进制字符类型数据 DECLARE @binaryData VARBINARY(10) = 0x546…

    C# 2023年5月31日
    00
  • PHP中使用协同程序实现合作多任务第2/2页

    下面是关于“PHP中使用协同程序实现合作多任务”的完整攻略。 什么是协同程序 协同程序(Coroutine)是一种比线程更轻量级的多任务实现方式,它可以在同一个线程中实现多个任务的切换,从而提高程序的并发性和效率。 PHP中协同程序的实现 在PHP中,协同程序的实现可以借助Swoole等第三方扩展来实现。下面以Swoole为例,介绍协同程序的基本使用。 安装…

    C# 2023年6月6日
    00
  • C#使用Json.Net进行序列化和反序列化及定制化

    下面我将详细讲解 “C#使用Json.Net进行序列化和反序列化及定制化” 的完整攻略。 什么是Json.Net Json.Net 是一个用于Json数据格式的处理工具库,非常流行,由于 JsonSerializer已经成为.NET Framework的一部分,因此在使用Json相关操作时我们非常推荐使用Json.Net 如何进行Json序列化 使用 Jso…

    C# 2023年5月31日
    00
  • C#实现的简单验证码识别实例

    下面是针对C#实现简单验证码识别的完整攻略: 1. 获取验证码图片 首先,需要下载验证码图片并将其保存到本地。可以使用下面的代码来实现: var webClient = new WebClient(); webClient.DownloadFile("http://example.com/captcha.png", "captc…

    C# 2023年6月7日
    00
  • C#中方法的详细介绍

    下面是关于“C#中方法的详细介绍”的完整攻略。 什么是方法 方法是 C# 中一种有名字的代码块,用于执行任务。方法成为代码重用的基本单元,它可以在应用程序中重复使用,其可以被传递参数和返回值。在 C# 中,方法的操作通常是与对象进行交互,也可以不直接操作对象而只执行一些函数式操作。 定义方法 定义方法需要声明其名称、参数、返回类型和方法体中的执行代码。以下是…

    C# 2023年5月31日
    00
  • 在多线程中调用winform窗体控件的实现方法

    在多线程中调用winform窗体控件是开发过程中常见的问题,因为在多线程场景下,是不允许直接操作UI控件的。下面是实现方法的完整攻略。 1. 合适的线程池 要在多线程中操作UI控件,第一步就要选用合适的线程池,它允许我们在不同的线程下执行不同的后台操作,同时又可以保留主线程的UI。以下是一个简单的示例: //线程池容量为5 ThreadPool.SetMax…

    C# 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部