概述
在C#中,位运算符主要用于位操作,这些运算符用于对操作数执行逐位运算,如位与(&)、位或(|)、位异或(^)等。我们可以对布尔和整数数据执行位运算。
例如,假如有整数变量a = 10
, b = 20
,这些变量的二进制格式如下所示:
a = 10 (00001010)
b = 20 (00010100)
当我们对这些数据进行位或(|)运算时,我们将得到如下所示的结果:
00001010
00010100
--------
00011110 = 30 (十进制)
下表列出了C#按位运算中可用的运算符:
运算符 | 名称 | 描述 | 示例 (a = 0, b = 1) |
---|---|---|---|
& | 按位与运算 | 将第一个操作数的每个位与其第二个操作数的对应位进行比较。如果两个位都是1,那么结果位将是1;否则,结果将为0。 | a & b (0) |
| | 按位或运算 | 将第一个操作数的每个位与其第二个操作数的对应位进行比较。如果其中一位为1,则结果位为1;否则,结果将为0。 | a | b (1) |
^ | 按位异或运算 | 将第一个操作数的每个位与其第二个操作数的对应位进行比较。如果一位为0,另一位为1,则结果位为1;否则,结果将为0。 | a ^ b (1) |
~ | 按位取反运算 | 它只对一个操作数进行操作,并且它将对每个操作数位进行反向运算。它将把1位变为0位,反之亦然。 | ~(a) (1) |
<< | 二进制左移运算符 | 将数字根据指定的位数向左移动,0将被加到最低有效位上。 | b << 2 (100) |
>> | 二进制右移运算符 | 将数字根据指定的位数向右移动,0将被加到最低有效位上。 | b >> 2 (001) |
C#按位运算示例
以下是C#语言中按位运算(按位与、按位或、按位异或、按位取反、二进制左移、二进制右移)等的示例程序:
using System;
namespace ConsoleApp1
{
static class Program
{
static void Main(string[] args)
{
int x = 15, y = 20;
int result;
result = x & y;
Console.WriteLine("按位与运算: " + result);
result = x | y;
Console.WriteLine("按位或运算: " + result);
result = x ^ y;
Console.WriteLine("按位异或运算: " + result);
result = ~x;
Console.WriteLine("按位取反运算: " + result);
result = x << 2;
Console.WriteLine("二进制左移运算符: " + result);
result = x >> 2;
Console.WriteLine("二进制右移运算符: " + result);
Console.ReadLine();
}
}
}
运行结果如下图:
发表评论
登录用户才能发表评论, 请 登 录 或者 注册
热门评论(1)
刘棋 (2023-09-13)
太难了,越想越气