发布网友 发布时间:2022-04-23 04:06
共4个回答
热心网友 时间:2023-10-14 07:50
C语言是为描述系统而设计的,它的第一个应用就是UNIX操作系统的设计,因此必须具有低级语言的特点。指针运算和位运算就是其代表。
我们知道,计算机中的信息以及控制信号均是以二进制码的0、1的形式存储和处理的。每一个0或1称为一个“位”(bit),8位构成一个字节(byte)。在内存中,每一个字节均有一个编号,称为内存地址。
在以前的各章节中,我们都是将一个字节(如字符型)和若干字节(如整型、实型等)中的内容作为一个整体进行处理的(赋值、运算、I/O操作)。
位运算则是针对这些字节中的若干位进行操作。这在系统软件设计中和自动控制中是十分有用的。
C语言的位运算符有~,<<,
>>,
&,
|,
^共6个,并可与赋值运算符相结合(除~外)成为位运算赋值操作。
应注意:参与位运算的量只能是整型和字符型。
热心网友 时间:2023-10-14 07:51
先把要进行运算的两个数转换成二进制:
下面是“按位与”:--就是要两个都是真才是真(1)
0 1 0 1 0 0 1 0
1 1 1 1 1 0 0 0
-------------------
0 1 0 1 0 0 0 0
-------------------------------------------------
下面是“按位或”:--就是一个是真就可以了(1)
0 1 0 1 0 0 1 0
1 1 1 1 1 0 0 0
----------------------
1 1 1 1 1 0 1 0
-------------------------------
-----这样看起来符合我们的运算习惯。
热心网友 时间:2023-10-14 07:51
如果你把所有的操作数都用二进制来表达就清晰了,如下
位与 & 相同位按与来运算即可 如:
1 & 2 =0
-------------
二进制是这样的 01 & 10 = 00
位或 | 一样,按位来或即可
1|2 = 3
--------------
二进制是这样: 01|10=11
其他位运算都是按二进制位来运算的,你转换成2进制就好理解了
热心网友 时间:2023-10-14 07:52
&和|的关系
(1)若a=true b=false 则:
a&&b=false
a||b=true
(2)若a=false a=true
a&&b=false
a||b=true
(3)若a=true b=true
a&&b=true
a||b=true
(4)若a=false b=false
a&&b=false
a||b=false
仔细想一下就明白了!