Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
5m 54s
C# 中的二进制操作对于处理位操作至关重要,尤其是在处理标志、权限和底层数据处理时。 基本的二进制运算符之一是 OR( |) 运算符。 在他的视频 Binary in C#:10 分钟以内的二进制 OR 操作符中,Tim Corey 详细介绍了 C# 中二进制 OR 操作符的工作原理及其实际应用。 让我们一步步来看看他的解释。
Tim 在视频的开头继续讲述他对 C# 中二进制操作的理解。 本课是该系列的第五课,主要介绍 OR 运算符。 他设置了一个基本场景,他有两个整数值,Val1 和 Val2,以二进制格式表示。 这些值被打印在控制台上,以便清晰直观地显示它们在二进制中的样子。
此时,Tim 解释了 OR 运算符在二进制比较中的作用。 他解释说,OR 运算符比较两个二进制值在相应位置上的每一位。 如果两个位中的任何一个是 1,则该位置的结果将是 1。 如果两个位都是 0,结果将是 0。
为了证明这一点,他以比较两个值为例进行了说明:
Val1 = 1101(二进制表示)Val2 = 0010(二进制表示)Tim 强调,在每个位位置,如果至少有一个值有 1,则结果位将是 1。 否则,它保持 0。
Tim 开始编写执行 OR 操作的实际代码。 他使用单管()将 OR 操作的结果赋值给一个新变量。|) 运算符:
// Define two binary values as integers
int Val1 = 0b1101; // Binary representation: 1101
int Val2 = 0b0010; // Binary representation: 0010
// Perform the bitwise OR operation
int result = Val1 | Val2;
// Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase: 2)); // Output: 1111 in binary' Define two binary values as integers
Dim Val1 As Integer = &B1101 ' Binary representation: 1101
Dim Val2 As Integer = &B0010 ' Binary representation: 0010
' Perform the bitwise OR operation
Dim result As Integer = Val1 Or Val2
' Print the result to the console
Console.WriteLine(Convert.ToString(result, toBase:=2)) ' Output: 1111 in binary0b 前缀定义二进制值,这方便了 C# 中的直接二进制输入。result 变量中。Convert.ToString(result, toBase: 2) 将整数结果转换为表示其二进制格式的字符串,以便显示。Tim 在这里做了一个重要的区分:在 if 语句内的逻辑表达式中,我们使用 || for logical OR, whereas in bitwise operations, we use a single `|对单个位进行操作。
运行 OR 操作后,Tim 会将结果打印到控制台。 译文要演示 OR 如何在位级上工作:
1101|0010 = 1111结果中的每个位遵循规则:如果 Val1 或 Val2 中的任一具有 1,结果是 1。 这清晰直观地展示了 OR 如何组合两个二进制数。
为加强概念,Tim 修改 Val2 来观察或运算符对不同输入的反应。 他将 Val2 改为 1010,然后再次运行操作。 翻译结果与 OR 逻辑保持一致:
1101|1010 = 1111Tim 指出,只要至少有一个数字在给定位置有 1,则该位置的结果也将是 1。
Tim 简要地重温了逻辑 OR( ||) and bitwise OR (|)。 逻辑 OR 用于布尔条件,如
// Example of logical OR in a conditional statement
if (condition1 || condition2)
{
// Execute if either condition1 or condition2 is true
}' Example of logical OR in a conditional statement
If condition1 OrElse condition2 Then
' Execute if either condition1 or condition2 is true
End If另一方面,正如本课所示,位wise OR 用于位级的二进制操作。
最后,Tim 讨论了一些实际场景,在这些场景中位操作 OR 非常有用。 其中一个常见用例是使用基于标志的设置。 例如,如果您将不同的权限标志存储为二进制值,则可以使用 OR 将它们有效地组合起来。
例如,在基于标志的系统中:
READ_PERMISSION = 0001WRITE_PERMISSION = 0010EXECUTE_PERMISSION = 0100如果用户同时需要读取和写入权限,我们可以使用 OR 将它们结合起来:
// Define permission flags as constants
const int READ_PERMISSION = 0b0001;
const int WRITE_PERMISSION = 0b0010;
// Combine read and write permissions using bitwise OR
int userPermissions = READ_PERMISSION | WRITE_PERMISSION; // Result: 0011
// Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase: 2)); // Output: 0011' Define permission flags as constants
Const READ_PERMISSION As Integer = &B0001
Const WRITE_PERMISSION As Integer = &B0010
' Combine read and write permissions using bitwise OR
Dim userPermissions As Integer = READ_PERMISSION Or WRITE_PERMISSION ' Result: 0011
' Print the user permissions in binary
Console.WriteLine(Convert.ToString(userPermissions, toBase:=2)) ' Output: 0011Tim 强调,在处理此类标志组合时,OR 特别有用,而且不会影响现有值。
视频结束时,Tim 总结了要点:
|) 比较两个数字中的相应位。1,结果是 1。||), 用于布尔表达式。通过跟随 Tim 的解释和示例,我们可以扎实地了解二进制 OR 运算符在 C# 中的工作原理,以及在哪些地方可以有效应用。
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy