C# 中的逻辑运算符和位运算符

发布日期:2026-07-14 02:03:02   来源 : 杭州电子商务研究院    浏览量 :15
杭州电子商务研究院 发布日期:2026-07-14 02:03:02  
15

介绍

C# 支持五种主要类型的运算符,这些运算符根据其存在背后的想法分组在一起。

运算符的类别:

  1. 算术运算符:对intdoublefloat等数字执行运算。
  2. 关系运算符:比较并检查输入对象的相等性
  3. 逻辑运算符:比较给定对象的位并始终返回布尔结果
  4. 按位运算符:对各个位执行运算,结果也始终是位
  5. 赋值运算符:允许我们用一个值初始化一个对象或对其执行特定的操作
  6. 杂项运算符

运算符优先级的概念规定了复杂表达式的求值逻辑。这因运算符类别而异。有关完整列表,请访问Microsoft官方参考。

本指南将讨论按​​位运算符和逻辑运算符,包括如何理解它们对代码的影响。

逻辑运算符

此类别的运算符适用于布尔变量或表达式。它允许你使用三个基本操作数:ANDORNOT。每个复杂的逻辑表达式都可以使用这些操作数的组合来构建。可以快速绘制真值表来验证逻辑和结果,下面我们将看到这些操作数的真值表。

假设1表示0表示

ANDOR操作数的真值表

一个 或者
1 0 0 1
0 1 0 1
0 0 0 0
1 1 1 1

使用AND操作数时,有一种非常简单的方法来理解和计算结果。只要操作数中有0 ,结果就始终为false ,而当两个操作数都是1时,结果为 true

使用OR操作数也有其简单的逻辑理解方法。只要操作数之间有 ``* ,结果总是true ,而当两个操作数都是0时,结果为 false

在 C# 中,&&运算符表示AND,而||运算符表示OR

让我们看一个例子。

      using System;
namespace Pluralsight
{
    public class LogicalOperators
    {
        public static void Main()
        {
            bool a = true;
            bool b = false;
            Console.WriteLine($"The value of a is {a}, and b is {b}");
            Console.WriteLine($"The a && b evaluates to {a&&b}");
            Console.WriteLine($"The a || b evaluates to {a || b}");
            a = false;
            b = false;
            Console.WriteLine($"The value of a is {a}, and b is {b}");
            Console.WriteLine($"The a && b evaluates to {a && b}");
            Console.WriteLine($"The a || b evaluates to {a || b}");
            a = true;
            b = true;
            Console.WriteLine($"The value of a is {a}, and b is {b}");
            Console.WriteLine($"The a && b evaluates to {a && b}");
            Console.WriteLine($"The a || b evaluates to {a || b}");
            a = false;
            b = true;
            Console.WriteLine($"The value of a is {a}, and b is {b}");
            Console.WriteLine($"The a && b evaluates to {a && b}");
            Console.WriteLine($"The a || b evaluates to {a || b}");
            Console.ReadKey();
        }

    }
}
    

执行代码将得到以下输出。

      The value of a is True, and b is False
The a && b evaluates to False
The a || b evaluates to True
The value of a is False, and b is False
The a && b evaluates to False
The a || b evaluates to False
The value of a is True, and b is True
The a && b evaluates to True
The a || b evaluates to True
The value of a is False, and b is True
The a && b evaluates to False
The a || b evaluates to True
    

NOT操作数的真值表

一个 不是
1 0
0 0

在 C# 中,!运算符表示操作数。

让我们看一个简短的例子来了解它是如何工作的。

      using System;
namespace Pluralsight
{
    public class LogicalOperators
    {
        public static void Main()
        {
            bool a = true;
            Console.WriteLine($"The value of a is {a}");
            Console.WriteLine($"The !a evaluates to {!a}");
            a = false;
            Console.WriteLine($"The value of a is {a}");
            Console.WriteLine($"The !a evaluates to {!a}");
            Console.ReadKey();
        }

    }
}
    

执行代码得到以下结果。

      The value of a is True
The !a evaluates to False
The value of a is False
The !a evaluates to True
    

您还可以组合这些表达式来描述应用程序中更复杂的逻辑。

按位运算符

这种类型的运算符可以处理两种类型的变量。一种是整数数值类型,它包含 sbyte、byte、short、ushort、int、uint、long 和 ulong 子类型,另一种是char类型。只要您使用其中任何一种,该运算符都可以工作。

总共有六个位运算符:

  1. ~ - 补充(翻转位流中的位,使1变成0,反之亦然。)
  2. & - AND(与逻辑运算符部分的逻辑相同)
  3. | - 或(与逻辑运算符部分的逻辑相同)
  4. ^ - 排他或(如果任一操作数中都有1但不是同时都有,则该位被翻转。)
  5. << - 左移(将位向左侧移动指定的量。)
  6. >> - 右移(将位向右侧移动指定的量。)

我们将用两个数字来演示这些操作数:

十进制 二进制
6 0000 0110
17 0001 0001

让我们创建演示。

      using System;
namespace Pluralsight
{
    public class LogicalOperators
    {
        public static void Main()
        {
            int a = 6;
            int b = 17;
            Console.WriteLine($"The value of a is {a} in binary: {Convert.ToString(a, 2)}, b is {b} in binary: {Convert.ToString(b, 2)}!");
            Console.WriteLine("Bitwise OR");            
            Console.WriteLine($"The bitwise OR result is {a | b} in binary: { Convert.ToString((a|b), 2)}");
            Console.WriteLine("Bitwise AND");            
            Console.WriteLine($"The bitwise AND result is {a & b} in binary: { Convert.ToString((a & b), 2)}");
            Console.WriteLine("Bitwise Complement");            
            Console.WriteLine($"The bitwise AND result is {~a} in binary: { Convert.ToString((~a), 2)}");
            Console.WriteLine("Bitwise XOR");
            Console.WriteLine($"The bitwise AND result is {a ^ b} in binary: { Convert.ToString((a ^ b), 2)}");
            Console.WriteLine("Bitwise <<");
            Console.WriteLine($"The bitwise AND result is {a << b} in binary: { Convert.ToString((a << b), 2)}");
            Console.WriteLine("Bitwise >>");
            Console.WriteLine($"The bitwise AND result is {a >> b} in binary: { Convert.ToString((a >> b), 2)}");
            Console.ReadKey();
        }

    }
}
    

执行代码得到以下结果。

<div class="code-block -hljs-dark aem-GridColumn--tablet--12 aem-GridColumn--phone--12 aem-GridColumn aem-Gr
以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据