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.


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

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

相关文章
|
3月前
位运算符
位运算符。
19 0
|
3月前
学习使用按位与 &
学习使用按位与 &。
17 2
|
3月前
学习使用按位与&
学习使用按位与&。
16 2
|
8月前
按位操作符:按位与 & 、按位或 | 、按位异或 ^ 、按位取反 ~
所有的按位操作符都是按二进制位补码操作
34 0
|
9月前
|
编译器 C++
移位操作符与位操作符详解
移位操作符与位操作符详解
80 0
|
9月前
|
存储
^(按位异或)操作符详解
^(按位异或)操作符详解
|
10月前
异或运算符简单逻辑运算 a^=b
异或运算符简单逻辑运算 a^=b
75 0
|
11月前
位运算符实际应用
位运算符实际应用
50 0
位运算中的按位与(&),按位或(|),按位异或(^)
位运算中的按位与(&),按位或(|),按位异或(^)
77 0
位运算中的按位与(&),按位或(|),按位异或(^)