什么是按位进行与运算

如题所述

位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。C语言提供了6个位操作
运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。
C语言提供的位运算符列表:
运算符
含义
描述
&
按位与
如果两个相应的二进制位都为1,则该位的结果值为1,否则为0
|
按位或
两个相应的二进制位中只要有一个为1,该位的结果值为1
^
按位异或
若参加运算的两个二进制位值相同则为0,否则为1
~
取反
~是一元运算符,用来对一个二进制数按位取反,即将0变1,将1变0
<<
左移
用来将一个数的各二进制位全部左移N位,右补0
>>
右移
将一个数的各二进制位右移N位,移到右端的低位被舍弃,对于无符号数,高位补0
1、“按位与”运算符(&)
按位与是指:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,
则该位的结果值为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。按位与其
实与逻辑上“与”的运算规则一致。逻辑上的“与”,要求运算数全真,结果才为真。若,true,B=true,则A∩B=true
例如:3&5
3的二进制编码是11(2)。(为了区分十进制和其他进制,本文规定,凡是非十进制的数据均在数据后面加上括号,括号中注明其进制,二进制则标记为2)内存储存数据的基本单位是字节(Byte),一个字节由8个位(bit)所组成。位是用以描述电脑数据量的最小单位。二进制系统中,每个0或1就是一个位。将11(2)补足成一个字节,则是00000011(2)。5的二进制编码是101(2),将其补足成一个字节,则是00000101(2)按位与运算:
00000011(2)&00000101(2)&00000001(2)由此可知3&5=1
c语言代码:
#include

main()
{
int
a=3;
int
b
=
5;
printf("%d",a&b);
}
按位与的用途:
(1)清零
若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合一下条件:
原来的数中为1的位,新数中相应位为0。然后使二者进行&运算,即可达到清零目的。
例:原数为43,即00101011(2),另找一个数,设它为148,即10010100(2),将两者按位与运算:
00101011(2)
&10010100(2)
00000000(2)
c语言源代码:
#include

main()
{
int
a=43;
int
b
=
148;
printf("%d",a&b);
}
(2)取一个数中某些指定位
若有一个整数a(2byte),想要取其中的低字节,只需要将a与8个1按位与即可。
a
00101100
10101100
b
00000000
11111111
c
00000000
10101100
(3)保留指定位:
与一个数进行“按位与”运算,此数在该位取1.
例如:有一数84,即01010100(2),想把其中从左边算起的第3,4,5,7,8位保留下来,运算如下:
01010100(2)
&00111011(2)
00010000(2)
即:a=84,b=59
c=a&b=16
c语言源代码:
#include

main()
{
int
a=84;
int
b
=
59;
printf("%d",a&b);
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-05-04
按位进行与运算符‘&’的功能是对参与运算的各对应的二进位相与,9&5:00001001&00000101=00000001.9&5=1
按位进行或运算符‘|’的功能是对参与运算的各对应的二进位相或,9|5:
00001001|00000101=00001101.9|5=13
自己把它抄下来慢慢看看
第2个回答  2019-05-16
位即是指二进制的表示,如十进制的"5"按位表示就是"00000101"。
两者相与时,都是1时结果为1,不全是1时结果为0;两者相或时,都是0时结果为0,不全是0时结果为1。
举例:十进制的"6"和"10"按位与、或分别是,"00000110"和"00001010"按照每一位进行与、或,结果分别是"00000010"和"00001110",即"2"和"14"。

什么是按位进行与运算
位即是指二进制的表示,如十进制的5按位表示就是00000101。两者相与时,都是1时结果为1,不全是1时结果为0;两者相或时,都是0时结果为0,不全是0时结果为1。举例:十进制的6和10按位与、或分别是,00000110和00001010,按照每一位进行与、或,结果分别是00000010和00001110,即2和14。

求助!什么是按位或,什么是按位异或,什么是按位与?
1、按位或:如果两个相应的二进制位有一个为1,则该结果为1,否则为0。2、按位异或(^):如果两个相应的二进制位值不同则为1,否则为0。3、按位与(&):如果两个相应的二进制位都为1,则该位的结果值为1,否则为0。按位的各种运算,结合图形看起来是不是还挺简单,不过这些都是正数的操作...

按位与是什么意思
按位与(&)是一种二进制运算符,其作用是对两个二进制数的每一位进行比较,如果两个数的相应位都为1,则结果为1,否则结果为0。当我们需要对一个数字执行类似“筛选奇数”的操作时,通常会使用按位与。按位与经常被用来从一个数字中提取某些位的值。例如,如果我们想要从一个8位二进制数中提取...

求助!什位异或,什么是按位与?
位运算在计算机科学中是非常基础且重要的概念,主要包括按位或(|)、按位异或(^)和按位与(&)。以下是它们的简单解释:1. 按位或(|):这种运算符比较两个二进制位,如果至少有一个为1,结果位就为1,否则为0。这种操作直观地反映了“或”的逻辑,即只要有一个条件满足,结果即为真。2. 按...

C语言中移位运算
按位与是指:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。按位与其实与逻辑上“与”的运算规则一致。逻辑上的“与”,要求运算数全真,结果才为真。若,A=true,B=true...

求助!什么是按位或,什么是按位异或,什么是按位与?
按位与:是一种二进制运算,表示两个位都为1时,结果才为1。详细解释:按位或是二进制运算的一种。在进行按位或运算时,如果两个相应的二进制数中至少有一个为1,那么结果的这一位就为1。换句话说,只有当相应的两个位都为0时,结果位才会是0。这种运算在计算机科学中有广泛的应用,例如在设置...

你好,刚刚看了你对按位与操作的回答,大概懂了些,但是我对这道题还是搞...
现在假设机器为8位(32位也是一样道理),进行按位与运算吧,-25的二进制为1001 1001 补码为:1110 0111 93的二进制为0101 1101 按位与是逐位二进制进行按位与运算,规则是两数同时为1时才为1,否则为0,计算结果如下:1110 0111 0101 1101 0100 0101 这便是结果,化为10进制为69 ...

位与运算定义是什么?
具体不知道怎么定义的 但是所谓位与,即为按位做与运算。就是每一位两个数字做与运算,因为在计算机世界里,只有0和1两个数字。于是有:1与1---等于1 0与1---等于0。

java中的 &是什么意思 如何使用 计算
与一个数进行&运算,此数在该位取1。例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为...

汇编语言里 的 或运算 与运算是什么意思
1、与运算 and指令:逻辑与指令,按位进行与运算。mov al, 01100011B and al, 00111011B 执行之后:al =00100011B 通过该指令可将操作对象的相应位设为0,其他位保持不变。2、或运算 or指令:逻辑或指令,按位进行或运算。mov al, 01100011B or al, 00111011B 执行之后:al =01111011B 通过...

相似回答
大家正在搜