C#基础:%、&&、||、!、&、|、~这些符号的含义

2025-04-26 10:52:21

1、先来讲%符号,这个符号叫取余。从字面意思来看,就是取余数。实际上也是这个意思,我们来看代码。从图中可以看到,15可以被3整除,所以15%3等于0。16除以3余1,所以15%3等于1。

C#基础:%、&&、||、!、&、|、~这些符号的含义
C#基础:%、&&、||、!、&、|、~这些符号的含义

2、下面三个是逻辑运算符。&&:逻辑与。||:逻辑或。!:逻辑非。逻辑运算符是对真与假的组合判断,我们写代码测试一下。先来看逻辑与。

C#基础:%、&&、||、!、&、|、~这些符号的含义

3、从输出结果上,我们可以看出。&&运算两边,只要有一个假,最后的结果就是假。这就相当于日常生活中的“并且”。事件1 并且 事件2。 两件事都为真,结果才是真的。

C#基础:%、&&、||、!、&、|、~这些符号的含义

4、下面来看逻辑或,测试代码如下。

C#基础:%、&&、||、!、&、|、~这些符号的含义

5、从输出结果来看,||两边,只要有一个为真,最后结果就为真。这就相当于日常生活中的“或者”。事件1 或者 事件2.只要有一个成立,最后结果就是成立。

C#基础:%、&&、||、!、&、|、~这些符号的含义

6、下面来看逻辑非。跟上面两个不同,逻辑非是单目运算符。单目运算符就是只需要一个参数。只对一个True或者False做逻辑非的运算。下面看测试代码:

C#基础:%、&&、||、!、&、|、~这些符号的含义

7、从测试结果来看,True逻辑非完之后是False。False逻辑分完之后是True。可以看到就是对参数进行了取反的操作。

C#基础:%、&&、||、!、&、|、~这些符号的含义

8、下面三个运算符是位操作。争犸禀淫&:按位与。|:按位或。~:按位取反。什么是位操作呢,我来说一下。计算机中的数字都是按二进制存储的,比如5这个数,计算机里存的是0101。位操辑湃形傥作就是直接对0、1进行的操作。下面先看按位取反操作符。测试代码如下:

C#基础:%、&&、||、!、&、|、~这些符号的含义

9、下面分析输出结果:~0x55 = 0xAA0x55的二进制是 010101010xAA的二进制是 10101010可以发现,按位取反就是把原来是0的地方变成1,原来是1的地方变成0。

C#基础:%、&&、||、!、&、|、~这些符号的含义

10、下面在再看按位与,测试代码如下:

C#基础:%、&&、||、!、&、|、~这些符号的含义

11、下面分析输出结果。 0垓矗梅吒x55 01010101& 0x43 01000011-----------------------= 0x41 01000001可以发现,如果相同位数两个都是1,输出结果就为1.只要有一个是0,输出结果就为0。另一种说法是0/1 按位与上1 都不变。0/1 按位与上0 都变为0。这就是按位与的效果。通过这个特点,可以用按位与做一些特殊操作。比如把某些位变成0。举个例子:某一个数 0xXX,我想让他的高四位变成0.就可以这样操作,0xXX & 0x0F。结果就是0x0X。

C#基础:%、&&、||、!、&、|、~这些符号的含义

12、下面看按位或。测试代码如下:

C#基础:%、&&、||、!、&、|、~这些符号的含义

13、下面分析输出结果。 0垓矗梅吒x55 01010101& 0x43 01000011----------------------= 0x57 01010111可以发现,相同位只要有一个是1,结果就是1。只有两个都是0的时候,结果才是0。另一种说法是0/1 按位或上0 都是不变。0/1 按位或上1 都变为1。比如我想把一个数的高四位都变成1,就可以这样操作,0xXX | 0xF0。输出结果就是0xFX。

C#基础:%、&&、||、!、&、|、~这些符号的含义
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢