C# " |= " 的用法

|= 用于 运算,

位(bit)是电子计算机中最小的数据单位。每一位的状态只能是0或1。

也就是说,位组合起来就是二进制。

| 代表位运算里的 按位或(OR)

按位或 处理两个长度相同的二进制数,两个相应的二进位中只要有一个为1,该位的结果值为1。

贴学习中的一段代码,这段代码的意思就是根据路径去隐藏文件夹。

bool hide(string path)

{

if (path != string.Empty)

{

DirectoryInfo dir = new DirectoryInfo(path);

dir.Attributes |= FileAttributes.System;

dir.Attributes |= FileAttributes.Hidden;

return true;

}

return false;

}

在这段代码中,FileAttributes 是可以代表符合状态的枚举,    注:带有"[flags]位域"的枚举可以用来表达多种复合的状态,可以用 "或(|)"运算符进行组合, 每个位域的枚举都不能是前几项值的复合值,通常用2的n次方来代表位域枚举。

位的运算:

按位或:

规则:

1|1=1

1|0=1

0|1=1

0|0=0

参与运算的两数各对应的二进位,只要有一个是1,结果位就为1, 参与运算的两个数均以补码出现。 例如:9|5可写算式如下: 00001001|00000101 00001101 (十进制为13)可见9|5=13。

static void Main(string[] args)

{

int a = 5;

int b = 9;

var c = a | b;

Console.WriteLine($"a={a},b={b},c={c}");

Console.ReadKey();

}

结果是:13;

按位与:

和上述 按位或 的规则相反,例如:1&1=1;0&1=0;1&0=0;0&0=0;参与运算的两个数也都是以补码出现,如果把上述代码内的|改为&,那么结果就是1。

按位异或(XOR),在C#里用 ^ 来表示:

参与运算的两数各对应的二进位,如果不相同,则为1,如果相同,则为0, 参与运算的两个数均以补码出现。 如果把上述代码内的|改为&,那么结果就是12。

取反(NOT),在C#里用 ~ 来表示:

对每一位参与运算的二进制字符进行取反操作,为0则变为1,为1则变为0。例如: ~2 =   -3;

好,我们继续位的运算,上述代码 dir.Attributes |= FileAttributes.System; 的意思是: dir.Attributes = dir.Attributes| FileAttributes.System

© 著作权归作者所有,转载或内容合作请联系作者

推荐阅读 更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生 阅读 3,920 评论 0 13
  • 1, 写作营进程过半,而我却开始断了写作。 从一开始完全什么都不会的码字,到能写一些人摸狗样的文章,到能上个几次首...
    星沛olina 阅读 414 评论 2 2
  • 南飞的老雁承着自由的颜色回到了故乡,凝望着一群群从树上飞过的老雁。树下的老人眼睛里渐渐蒙上了一层雾纱,那经历过...
    小马丽 阅读 452 评论 1 9
  • 我从未如此爱过一个人,除了你。 我为你献出了我整个的时间,金钱。 我晚上做梦是你,白天见得还是你。 我一直知道你向...
    二楠 阅读 284 评论 9 1
  • 无论你遇见谁,他都是对的人。 无论发生什么事,那都是唯一会发生的事。 不管事情开始哪个时刻,都是对的时刻。 已经结...
    我是小白6 阅读 79 评论 1 0