C语言位运算

原创 2018年04月15日 22:59:05

位运算是指以二进制位为对象的运算,指针运算和位运算往往是编写系统软件所需要的。在计算机用于检测和控制领域也要用到位运算的知识。
位运算符当中除了~以外都是双目运算符;参加位运算的只能是整型或者字符型数据。

## 按位与运算 ##
运算符为“&”,参与运算的两个数据,按二进制位进行“与”运算。如果相应的两个二进制位都是1,则该位的结果为1,否则为0。如果参与“&”运算的是负数,(如-7&-5),则以补码形式表示为二进制数,然后按位进行“&”运算
即:0&0=0 1&0=0 0&1=0 1&1=1。
例如:7&5结果是5(处理7和5的相应二进制位);
特殊应用:
1,将某一个单元清为零:即使其全部二进制位为零,只要找一个数满足以下条
件,原数中为1的位,该数中相应位全为0,然后将二者进行与运算。
2,取一个数中的指定位。
3,要想将哪一位保留下来,就与一个数进行“&”运算,此数在该位取1。

##按位或运算##
运算符为“|” ,规则是:两个对应的二进制位中只要有一个为1,该位的结果值为1,即: 1|1=1 1|0=1 0|1=1 0|0=0。
用途:按位或运算符常用来对一个数据的某些位定值为1。例如:a是一个整数,有表达式:a|0377,则低八位全置为一,高八位保留原样。

##异或运算##
运算符”^” 规则是:若参加运算的两个二进制位异号,得到1,若同号,得到0。即:1^1=0 1^0=1 0^0=0 0^1=1。
“异或”的意思是判断两个相应的位值是否为异,为“异”就取1,否则为0。
应用:
1,使特定位翻转,要使哪一位翻转就将与其进行^运算的数在该位取1。
2,与0相^,保留原值。
3,交换两个值,不用临时变量:a=a^b; b=b^a; a=a^b;

##取反运算##
运算符为“~” 单目运算符,运来对一个二进制数按位取反,即将0变成1,1变成0。
作用:a=a & ~1;将16位或者32位存放的整数a最后一位变成0。

##左移运算##
运算符为“<<”,用来将一个数的二进制位全部左移若干位,高位左移后溢出,舍弃。例如:a=a<<2; 若a为15,则运算后a为60。当左移时被溢出舍弃的高位中不包含1时,左移n位相当于该数乘以2的n次方。左移比乘法运算快得多、

##右移运算##
运算符为“>>”,a>>2;表示将a的二进制位右移两位,移到右端的低位被舍弃,对无符号数,高位补0;对于有符号整数,如果符号位原来为0,高位补0,如果符号位为1,高位补0还是1,取决于计算机系统。

如果两个数据长度不同,进行位运算时,系统会将二者按右端对齐。例如(a&b,a为short类型,b为int类型),如果a为正数,则左侧十六位补满0;若a为负数,左端应补满1,如果a为无符号整数型,则左侧填满0。

c语言位运算c语言位运算

  • 2010年03月10日 10:48
  • 38KB
  • 下载

C语言中位运算异或“∧”的作用

1.概念异或运算符”∧”也称XOR运算符。它的规则是若参加运算的两个二进位同号,则结果为0(假);异号则为1(真)。即 0∧0=0,0∧1=1, 1^0=1,1∧1=0。 运算 说明 0^0...
  • wwt18811707971
  • wwt18811707971
  • 2017-10-20 08:57:54
  • 593

c语言学习之位运算知识总结和实例分析

先给大家讲个笑话吧,说世界上有10种人,一种知道二进制,而另一种不知道二进制。 位运算的基础就是二进制。二进制的位运算包括五种运算:与,或,异或,左移,右移 与(&) 0&0 = 0,0&1 =...
  • shitangdejiaozi
  • shitangdejiaozi
  • 2016-03-22 16:51:54
  • 818

用C语言讲一讲位运算 入门级(详细图解)

程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算说穿了,就是直接对整数在内存中的二进制位进行操作。...
  • rl529014
  • rl529014
  • 2016-04-23 22:07:43
  • 5051

C语言-位运算的应用

位运算的应用
  • u012163234
  • u012163234
  • 2016-06-19 14:11:02
  • 596

c语言位运算有什么作用?

C中的位运算可以对整形INT 或字符型CHAR 进行二进制按位运算 & 是对两个二进制数进行 与运算 | .....................或运算 ^ ......................
  • App_IOS
  • App_IOS
  • 2015-07-06 14:22:08
  • 2283

C中几道位运算的例题

在C语言里位运算不经常用到,但不能不会。 先复习下几个基础的位运算符 与运算:& 1&0=0 1&1=1 0&0=0 或运算:| 1|0=1 1|1=1 0|0=0 异或运算:^ 1...
  • wjb123sw99
  • wjb123sw99
  • 2017-07-12 20:00:27
  • 347

C语言之位运算/原码/反码/补码

所谓位运算,就是对一个比特(Bit)位进行操作。比特(Bit)是一个电子元器件,8个比特构成一个字节(Byte),它已经是粒度最小的可操作单元了。 C语言提供了六种位运算符: ...
  • u011146511
  • u011146511
  • 2017-04-13 10:58:53
  • 722

C语言中,位运算完成 加、减、乘、除

//位运算实现加法(整数部分) /* 设: x = 5(101) y = 6(110) 则:先通过 异或( ^ )完成“逢二不进一” 在通过按位与( & )主要判断两边是1的情况 在进行左移( ...
  • Long_Road66
  • Long_Road66
  • 2016-09-21 23:28:21
  • 834

C语言—位运算、char、数组

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- ---位运算 1.按位与 &    9 & 5     1001 0101 --...
  • d2678230143
  • d2678230143
  • 2015-04-04 13:56:03
  • 428
收藏助手
不良信息举报
您举报文章:C语言位运算
举报原因:
原因补充:

(最多只允许输入30个字)