C/运算符(按位与、按位或、按位异或)

简介: C/运算符(按位与、按位或、按位异或)

本文主要介绍C语言中按位与、按位或、按位异或三个操作符的使用。

该三个操作符中的位,代表的是二进制位。

按位与:&
运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。(负数按补码形式参加按位与运算)

实例:

#include<stdio.h>
int main()
{
  int a = 3 & 5;
  printf("%d  ", a);
  return 0;
}

输出结果:



分析该代码 :


1.3的补码: 0000 0000 0000 0000 0000 0000 0000 0011.

2.5的补码: 0000 0000 0000 0000 0000 0000 0000 0101.

3.经过按位与的操作,得到的补码为:0000 0000 0000 0000 0000 0000 0000 0001.


故输出结果为1.

按位或:|

运算规则:只有两个数的二进制同时为0,结果才为0,否则为1。(负数按补码形式参加按位或运算)

实例:

#include<stdio.h>
int main()
{
  int a = 3 | 5;
  printf("%d  ", a);
  return 0;
}

输出结果:
 
分析该代码:


1.3的补码:0000 0000 0000 0000 0000 0000 0000 0011.

2.5的补码:0000 0000 0000 0000 0000 0000 0000 0101.

3.经过按位或的操作,得到的补码为: 0000 0000 0000 0000 0000 0000 0000 0111.


故输出结果为7.

按位异或:^

运算规则:当两个数的二进制相同时,结果为0,否则为1。(负数按补码形式参加按位异或运算)

实例:

#include<stdio.h>
int main()
{
  int a = -3 ^ 5;
  printf("%d  ", a);
  return 0;
}

输出结果:
 
分析该代码:


1.-3的补码:1111 1111 1111 1111 1111 1111 1111 1101.

2.5的补码:0000 0000 0000 0000 0000 0000 0000 0101.

3.经过按位异或得到的补码为:1111 1111 1111 1111 1111 1111 1111 1000


故输出结果为-8.


这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位🔎点赞👍评论收藏⭐️,谢谢!!!

如果有什么疑问或不同的见解,欢迎评论区留言哦。

相关文章
|
2月前
学习使用按位与&
学习使用按位与&。
31 8
|
6月前
|
存储 编译器 C++
C++中的位运算符
C++中的位运算符
38 0
|
7月前
学习使用按位与 &
学习使用按位与 &。
34 2
按位操作符:按位与 & 、按位或 | 、按位异或 ^ 、按位取反 ~
所有的按位操作符都是按二进制位补码操作
74 0
^(按位异或)操作符详解
^(按位异或)操作符详解
C#中算数运算符及逻辑运算
C#中算数运算符及逻辑运算
85 0
异或运算符简单逻辑运算 a^=b
异或运算符简单逻辑运算 a^=b
130 0
深入理解算数运算符
深入理解算数运算符
55 0
位运算中的按位与(&),按位或(|),按位异或(^)
位运算中的按位与(&),按位或(|),按位异或(^)
133 0
位运算中的按位与(&),按位或(|),按位异或(^)
|
存储 程序员 数据安全/隐私保护
算数运算符
在 Python 中 `*` 运算符还可以用于字符串,计算结果就是字符串重复指定次数的结果。`+`运算符可以让两个字符串相加