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

2025-09-22 02:26:28

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 = 0xAA

0x55的二进制是  01010101

0xAA的二进制是 10101010

可以发现,

按位取反就是把原来是0的地方变成1,原来是1的地方变成0。

 

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

10、下面在再看按位与,

测试代码如下:

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

11、下面分析输出结果。

    0x55    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、下面分析输出结果。

    0x55    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。
猜你喜欢