使用二进制运算符

本文介绍了C#中二进制运算符的使用,包括AND(&), OR(|), XOR(^)和位翻转(~)。通过示例展示了如何进行二进制计算、位移操作以及有符号和无符号数的区别。还解释了在二进制表示中,符号位如何影响数值范围,并提供了相关代码示例。" 58602481,5672036,JavaScript实现拖拽效果与排序,"['js拖拽', '拖曳范围限制', '吸入效果', '拖拽排序', 'JavaScript交互']
摘要由CSDN通过智能技术生成

在学习编程时,使用二进制值一直是一个需要理解的重要概念,因为计算机使用0和1。现在,许多人可能已经错过了它的学习,因为他们是使用Blocks、Scratch,甚至可能是使用JavaScript开始学习编程的。

在C# 7中,由于使用数字分隔符和二进制字面量,因此二进制值的处理比以前更容易。二进制运算符从C#的第一个版本就开始有了,下面将介绍它们。

首先,使用二进制运算符的简单计算开始。方法SimpleCalculations首先使用二进制值(二进制字面量和数字分隔符)声明并初始化变量binary1和binary2。使用&运算符,两个值用二进制AND运算符合并起来,并写入变量binaryAnd。然后,使用运算符 | 创建binaryOr变量,使用运算符 ^ 创建binaryXOR变量,使用运算符 ~ 创建reversel变量:

        public static void SimpleCalculations(){
            System.Console.WriteLine(nameof(SimpleCalculations));
            uint binary1 = 0b1111_0000_1100_0011_1110_0001_0001_1000;
            uint binary2 = 0b0000_1111_1100_0011_0101_1010_1110_0111;
            uint binaryAnd = binary1 & binary2;
            DisplayBits("AND",binaryAnd,binary1,binary2);

            uint binaryOR = binary1 | binary2;
            DisplayBits("OR",binaryOR,binary1,binary2);

            uint binaryXOR = binary1 ^ binary2;
            DisplayBits("XOR",binaryXOR,binary1,binary2);

            uint reverse1 = ~binary1;
            DisplayBits("NOT",reverse1,binary1);
        }

要以二进制形式显示uni和int变量,需要创建扩展方法ToBinaryString。Convert.ToString提供的一个重载带有两个int参数,其中第二个int值是toBase参数。使用这个方法,可以通过传递值2、八进制(8)、十进制(10)和十六进制(16)来格式化输出字符串binary。默认情况下,如果二进制值以0开始,这些0值将被忽略,而不会打印出来。PadLeft方法填充字符串中的这些0值。字符串需要的字符数由sizeof运算符计算,并左移4位。如前所述,sizeof运算符返回指定类型的字节数。要显示这些位,需要将字节数乘以8,这相当于像左移动3位。另一个扩展方法是AddSeparators,它使用LINQ方法在每四位数之后添加_分隔符:

        private static string ToBinaryString(this uint number) =>
        Convert.ToString(number, toBase: 2).PadLeft(sizeof(uint) << 3, '0');

        private static string ToBinaryString(this int number) =>
        Convert.ToString(number, toBase: 2).PadLeft(sizeof(int) << 3, '0');

        private static string AddSeparators(this string number) =>
        string.Join('_', Enumerable.Range(0, number.Length / 4)
        .Select(i => number.Substring(i * 4, 4)).ToArray());

方法DisplayBits是从前面显示的SimpleCalculations方法调用的,它使用ToBinaryString和AddSeparators扩展方法。在这里,将显示用于操作的操作数,以及结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值