c语言中的位运算

1.什么是位运算符?

  • 位运算是指按二进制进行的运算。在系统软件中,常常需要处理二进制位的问题。 C语言􏰀供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的 char,short,int与long类型。

2.位运算符与

  • & 按位与
    • 只有对应的两个二进位均为1时,结果位才为1,否则为0
    • 口诀: 同1为1(很有用的)
9&5 = 1

 1001
&0101
------
 0001
  • 规律
    • 二进制中,与1相&就保持原位,与0相&就为0
  • 应用场景
    • 判断奇偶: 将变量a与1做位与运算,若结果是1,则 a是奇数;若结果是0,则 a是偶数
    • 任何数和1进行&操作,得到这个数的最低位

3.位运算符或

  • | 按位或
    • 只要对应的二个二进位有一个为1时,结果位就为1,否则为0
9|5 = 13

 1001
|0101
------
 1101

4.位运算符异或

  • ^ 按位异或
    • 当对应的二进位相异(不相同)时,结果为1,否则为0
9^5 = 12

 1001
^0101
------
 1100
  • 规律
    • 相同整数相的结果是0。比如55=0
    • 任何数^0都等于这个数

5.位运算符取反

  • ~ 取反
    • 各二进位进行取反(0变1,1变0,符号位也要变)
~9 =-10

9的原码:0000 0000 0000 0000 0000 1001
  反码:1111 1111 1111 1111 1111 0110

知道补码求原码:也是符号位不变,其他各位取反+1
1111 1111 1111 1111 1111 0110
取反
1000 0000 0000 0000 0000 1001
+1
1000 0000 0000 0000 0000 1010 // -10
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,201评论 0 13
  • 位运算 位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,...
    IIronMan阅读 7,938评论 0 2
  • 进制基本概念 什么是进制?进制是一种计数的方式,数值的表示形式 常见的进制十进制、二进制、八进制、十六进制 进制书...
    极客江南阅读 2,063评论 0 11
  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,本章逐一介绍这些运算...
    许先生__阅读 623评论 0 3
  • •1 C语言程序的结构认识 用一个简单的c程序例子,介绍c语言的基本构成、格式、以及良好的书写风格,使读者对c语...
    CONLYOUC阅读 8,735评论 9 66