位运算与移位运算符
使用 &、|、^、~ 和移位运算操作位。
位运算与移位运算符 是 CoddyKit 上的免费 C# Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 4 节课。
位与二进制
整数以位的形式存储。位运算符会操作这些独立的位。C# 提供了 &、|、^、~、<< 和 >>。
using System;
class Program {
static void Main() {
int x = 5;
Console.WriteLine(Convert.ToString(x, 2));
}
}按位 AND:&
只有当两个位都是 1 时,& 才会将该位设置为 1。5 & 3 会比较 101 和 011,得到 001 = 1。
using System;
class Program {
static void Main() {
Console.WriteLine(5 & 3);
Console.WriteLine(12 & 10);
}
}按位 OR:|
当任意一个位为 1 时,| 会将该位设置为 1。5 | 3 得到 111 = 7。
using System;
class Program {
static void Main() {
Console.WriteLine(5 | 3);
Console.WriteLine(8 | 1);
}
}按位 XOR:^
当两个位不同时,^ 会将该位设置为 1。5 ^ 3 得到 110 = 6。
using System;
class Program {
static void Main() {
Console.WriteLine(5 ^ 3);
Console.WriteLine(7 ^ 7);
}
}按位 NOT:~
~ 会翻转每一位。由于采用二补码表示法,~n 等于 -(n + 1)。
using System;
class Program {
static void Main() {
Console.WriteLine(~5);
Console.WriteLine(~0);
}
}左移:<<
<< 会将各个位向左移动,并在右侧补零。每左移一位,值就会扩大一倍:1 << 3 等于 8。
using System;
class Program {
static void Main() {
Console.WriteLine(1 << 3);
Console.WriteLine(5 << 1);
}
}右移:>>
>> 会将各个位向右移动。对于正数,每右移一位,值就会减半:20 >> 2 等于 5。
using System;
class Program {
static void Main() {
Console.WriteLine(20 >> 2);
Console.WriteLine(8 >> 1);
}
}位掩码
掩码可以隔离特定位。将值与掩码执行 AND 运算,即可只保留这些位。
using System;
class Program {
static void Main() {
int value = 0b1011;
int mask = 0b0110;
Console.WriteLine(value & mask);
}
}设置和清除位
使用 | 和单个位掩码可以设置某一位,使用 & 和反转后的掩码可以清除某一位。
using System;
class Program {
static void Main() {
int flags = 0;
flags |= (1 << 2);
Console.WriteLine(flags);
flags &= ~(1 << 2);
Console.WriteLine(flags);
}
}检查某一位
要检查某一位是否已设置,请将值与该位的掩码执行 AND 运算,并与非零值进行比较。
using System;
class Program {
static void Main() {
int flags = 0b0100;
bool isSet = (flags & (1 << 2)) != 0;
Console.WriteLine(isSet);
}
}使用移位快速乘法
移位是乘以或除以 2 的幂的一种快速方式,常用于对性能敏感的代码。
using System;
class Program {
static void Main() {
int n = 7;
Console.WriteLine(n << 2);
Console.WriteLine(n >> 1);
}
}快速检查
请测试您对位运算的了解。
回顾
位运算符逐位工作:& 表示 AND,| 表示 OR,^ 表示 XOR,~ 表示 NOT。移位运算符 << 和 >> 会将各个位向左或向右移动,相当于乘以或除以 2 的幂。
借助掩码,您可以设置、清除和检查单个位,这是处理标志和底层数据的基础。
常见问题解答
「位运算与移位运算符」课时是免费的吗?
是的 — 「位运算与移位运算符」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 4 节课。
「位运算与移位运算符」这节课中我会学到什么?
使用 &、|、^、~ 和移位运算操作位。 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 C# Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「位运算与移位运算符」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 C# Academy 课中编写并运行代码吗?
能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 算术与赋值运算符
- 比较与逻辑运算符
- 位运算与移位运算符
- 运算符优先级与结合性