Synchronization of old projects
Part1
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
using System;
|
||||
namespace Lesson14
|
||||
{
|
||||
class program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//位运算主要使用数值类型计算
|
||||
//将数值类型转换为二进制形式进行计算
|
||||
//位运算符包括:& | ^ ~ << >>
|
||||
|
||||
#region 知识点一 位与 &
|
||||
// 规则 连接两个数值进行位与运算 将数值转为二进制
|
||||
// 对位运算 有0则0
|
||||
int a = 1;//001
|
||||
int b = 5;//101
|
||||
int c = a & b;
|
||||
// 001 & 101 = 001
|
||||
Console.WriteLine(c);//001 & 101 = 001
|
||||
Console.WriteLine(10 & 5);//1010 & 0101 = 0000
|
||||
Console.WriteLine(3 & 19);//00011 & 10011 = 00011
|
||||
Console.WriteLine(19 & 3);//10011 & 00011 = 00011
|
||||
Console.WriteLine(1 & 2);//01 & 10 = 00
|
||||
//有点像是取最小的数,但不实际是这样
|
||||
#endregion
|
||||
|
||||
#region 知识点二 位或 |
|
||||
// 规则 连接两个数值进行位或运算 将数值转为二进制
|
||||
// 对位运算 有1则1
|
||||
Console.WriteLine(2 & 3);// 00010 & 00011 = 00011
|
||||
Console.WriteLine(3 & 2);// 00011 & 00010 = 00011
|
||||
Console.WriteLine(12 & 3);// 00001100 & 00000011 = 00000000
|
||||
#endregion
|
||||
|
||||
#region 知识点三 位异或 ^
|
||||
// 规则 连接两个数值进行位异或运算 将数值转为二进制
|
||||
// 对位运算 相同为0 不同为1
|
||||
Console.WriteLine(2 ^ 3);// 00010 ^ 00011 = 00001
|
||||
Console.WriteLine(3 ^ 2);// 00011 ^ 00010 = 00001
|
||||
Console.WriteLine(12 ^ 3);// 00001100 ^ 00000011 = 00001111
|
||||
#endregion
|
||||
|
||||
#region 知识点四 位非 ~
|
||||
// 规则 连接一个数值进行位非运算 将数值转为二进制
|
||||
// 对位运算 0变1 1变0
|
||||
Console.WriteLine(~2);// ~00010 = 11101 = -3
|
||||
// 但是要注意,特定变量类型前面的位会补全例如int
|
||||
int test = 10;
|
||||
Console.WriteLine(~test);// ~00000000000000000000000000001010 = 11111111111111111111111111110101 = -11
|
||||
#endregion
|
||||
|
||||
#region 知识点五 左移 << 和 右移 >>
|
||||
// 规则 左移运算符将数值的二进制位向左移动指定的位数,右移运算符将数值的二进制位向右移动指定的位数
|
||||
// 左移相当于乘以2的n次方 右移相当于除以2的n次方
|
||||
a = 5;// 101
|
||||
c = a << 5; // 5左移5位
|
||||
Console.WriteLine(c);// 10100000 = 160
|
||||
//右移同理
|
||||
c = a >> 2; // 5右移2位
|
||||
Console.WriteLine(c);// 00000101 >> 2 = 00000001 = 1
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user