C#运算符之与,或,异或及移位运算小结

让我们来详细讲解一下C#中的逻辑运算符、位运算符及移位运算符。

逻辑运算符

与运算符(&&)

与运算符用于连接两个逻辑表达式并在两个表达式均为true时返回true。与运算符可以被用于任何基本的数据类型,例如bool、int等。

int a = 3;
int b = 5;
if (a < b && b % 2 == 1)
{
    Console.WriteLine("a小于b且b是奇数");
}

上面的代码示例中,如果a小于b且b是奇数,那么控制台就会输出"a小于b且b是奇数",否则不做任何输出。

或运算符(||)

或运算符用于连接两个逻辑表达式并在两个表达式有任意一个为true时返回true。或运算符同样也可以用于任何基本的数据类型。

int a = 3;
int b = 5;
if (a == 3 || b == 4)
{
    Console.WriteLine("a等于3或b等于4");
}

上述代码示例中,如果a等于3或b等于4,那么控制台就会输出"a等于3或b等于4",否则不做任何输出。

异或运算符(^)

异或运算符用于连接两个逻辑表达式并在两个表达式仅当一个为true时返回true。异或运算符也可以用于任何基本的数据类型,例如bool、int等。

int a = 3;
int b = 5;
if (a == 3 ^ b == 3)
{
    Console.WriteLine("a等于3且b不等于3,或者a不等于3且b等于3");
}

上述代码示例中,如果a等于3且b不等于3,或者a不等于3且b等于3,那么控制台会输出"a等于3且b不等于3,或者a不等于3且b等于3",否则不做任何输出。

位运算符

按位与运算符(&)

按位与运算符用于连接两个整数并在它们的二进制表示的对应位都为1时返回1。按位与运算符可以用于任何整数类型。

int a = 5;       //二进制:0101
int b = 3;       //二进制:0011
int result = a & b; //二进制:0001

在上面的代码示例中,按位与运算符将a和b的二进制表示对应位进行与运算,结果为1的只有a和b的二进制表示的最右位,所以结果为1。

按位或运算符(|)

按位或运算符用于连接两个整数并在它们的二进制表示的对应位的任意一位为1时返回1。按位或运算符也可以用于任何整数类型。

int a = 5;       //二进制:0101
int b = 3;       //二进制:0011
int result = a | b; //二进制:0111

在上面的代码示例中,按位或运算符将a和b的二进制表示对应位进行或运算,结果为1的位有a、b的二进制表示的最右位以及最左位,所以结果为0111。

按位异或运算符(^)

按位异或运算符用于连接两个整数并在它们的二进制表示的对应位的任意一位为1而另一位为0时返回1。按位异或运算符也可以用于任何整数类型。

int a = 5;       //二进制:0101
int b = 3;       //二进制:0011
int result = a ^ b; //二进制:0110

在上面的代码示例中,按位异或运算符将a和b的二进制表示对应位进行异或运算,结果为1的位有a、b的二进制表示的第2位和第3位,所以结果为0110。

左移位运算符(<<)

左移位运算符将二进制数向左移动指定的位数。左移位运算符对整数进行操作。

int a = 5;       //二进制:0101
int result = a << 1; //二进制:1010

在上述代码示例中,a的二进制表示向左位移了一位,所以最终的结果是1010。

右移位运算符(>>)

右移位运算符将二进制数向右移动指定的位数。右移位运算符同样对整数进行操作。

int a = 5;       //二进制:0101
int result = a >> 1; //二进制:0010

在上述代码示例中,a的二进制表示向右位移了一位,所以最终的结果是0010。

希望上述代码示例能够对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#运算符之与,或,异或及移位运算小结 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 详析C#的协变和逆变

    详析C#的协变和逆变 在C#中,协变和逆变是非常重要的概念,尤其是在泛型的使用中更是如此。本文将详细讲解C#的协变和逆变。 协变 协变是一种安全的类型转换,从一个更特殊的类型转换为一个更一般的类型,也就是说,从子类型转换为父类型。在C#中,协变只支持泛型接口或泛型委托。使用out关键字可以指示泛型类型参数是协变的。以下代码示例展示了协变的用法: interf…

    C# 2023年5月15日
    00
  • 使用VS2019生成C#应用安装包的方法步骤

    下面是详细的攻略步骤。 使用VS2019生成C#应用安装包的方法步骤 1. 准备工作 在生成C#应用安装包前,我们需要先进行一些准备工作: 确认已经安装了Microsoft Visual Studio 2019。 确认已经创建了C#应用程序,并且应用能够正常地运行。 确认已经安装了Visual Studio Installer Projects扩展。如果还未…

    C# 2023年6月2日
    00
  • 安全技术—RSA公钥密码体制安全性分析

    RSA公钥密码体制是目前广泛应用于网络数据传输中的一种常用加密技术。本篇攻略将结合RSA密码体制的基本原理,分析其安全性,并探讨RSA密码体制在实际应用中可能面临的攻击手段,提出相应的应对方法。 基本原理 RSA公钥密码体制中,通信双方分别生成公钥和私钥。公钥系数n是两个大素数p和q的乘积,加密时使用公钥加密信息。私钥则由两个大素数p和q以及指数e计算出,解…

    C# 2023年6月7日
    00
  • .NET RulesEngine(规则引擎)的使用详解

    下面为您详细讲解使用“.NET RulesEngine(规则引擎)”的完整攻略。 什么是.NET RulesEngine? .NET RulesEngine是一款支持创建和执行规则的开源规则引擎库,可以通过定义特定的规则来对不同类型的数据进行验证或操作。它提供了一种将业务逻辑与代码分离的便捷方式。 安装和配置 首先,在Visual Studio中安装.NET…

    C# 2023年6月6日
    00
  • JQueryEasyUI datagrid框架的基本使用

    下面是针对JQueryEasyUI datagrid框架基本使用的完整攻略: 介绍 JQueryEasyUI datagrid是基于JQuery的UI插件。它提供了易于使用、可定制和高性能的数据表格功能,适合用于数据展示、数据查询、数据编辑等场合。操作方式类似于Excel表格,支持排序、筛选、分页等功能。本攻略将介绍JQueryEasyUI datagrid…

    C# 2023年6月1日
    00
  • C#构建树形结构数据(全部构建,查找构建)

    C#构建树形结构数据(全部构建,查找构建) 前言 树形结构数据在实际开发中非常常见,具有分级、层级、分类等特点,通常应用于目录结构、组织机构、商品分类等场景。本文将介绍如何使用C#构建树形结构数据,包括全部构建和查找构建两种方案。 全部构建 步骤一:定义数据结构 我们假设有一个数据表,包含id、parentId、name三个字段,其中id为自增主键,pare…

    C# 2023年5月31日
    00
  • unity shader 较完整光照(含有多光源阴影)

    在Unity引擎中,开发者可以使用Shader编写自定义着色器,来实现对游戏场景中的模型、材质进行更加高级的渲染。其中,光照是Shader编写中十分重要的一个环节,一个较完整的光照着色器需要包括基础光照、多光源、阴影等要素。下面介绍一些实现这些功能的方法: 1. 基础光照 在Unity中,使用Built-in Shader中的“Surface Shader”…

    C# 2023年6月3日
    00
  • LZW数据压缩算法的原理分析

    LZW数据压缩算法是一种基于字典的数据压缩算法,它通过构建字典来实现对输入数据的压缩。其主要流程如下: 1.初始化:先将所有单个字符加入字典中。 2.构建字典:从输入数据中读取第一个字符,然后依次读取字符直到在字典中找不到该字符串。将这个字符串(除最后一个字符)在字典中的下标输出并加入字典中,然后从下一个字符重新开始读取。 3.压缩:每次从输入数据中读取一个…

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