C语言基础自学总结七位运算.docx_第1页
C语言基础自学总结七位运算.docx_第2页
C语言基础自学总结七位运算.docx_第3页
C语言基础自学总结七位运算.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言基础自学总结之七:位运算概念:意思是:位运算说穿了,就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。针对一个变量的某一位操作就称之位,位操作。一.位运算符要点:1. &:按为与2. |:按位或3. :按位异或4. :按位取反5. :右移1. &: 按位与例子1:#include int main(void) printf(%dn,5&3);/5按位与3,是1,就是每一位进行相与,与运算:与上0还是0,1与上1为1,0与上1为0,用的是补码相与, printf(%dn,5&-3);/是补码的相与 return 0;2. :按位或例子1:#include int main(void) printf(%dn,5|3);/或运算就是对数字的每一个进行或运算,或运算:每一位只要有一个1就是1,都是0时才为0,同样是补码运算。 return 0;3. :按位异或例子1:#include int main(void) printf(%dn,53);/异或每一位进行异或,相同为假,不同为真。还是补码进行异或,return 0;4. : 按位取反例子1:#include int main(void) printf(%dn,53);/进行每一位取反,还是补码取反 return 0;5. :左移例子1:#include int main(void) printf(%dn,51);/就是把”前面数字“每一位向左边移“ :右移例子1:#include int main(void) printf(%dn,51);/右移的方式移左移一样,超出范围的舍去,不够的正数补0,负数补1,正数右移n位相当于除以2的n次方,但是在不同的系统下,结果不一样。 return 0;二. 位操作要点:1、如果相求a的第n位(从0位起)是1还是0,就用a与上1左移n位,如果等于1第那位就上1,若果等0第n位就是0,a&=1n,2.如果想把a的第n位(从0位起)变成1,就用a或上1左移n位,a1n。3.如果想将a的第n位(从0位起)变成0,就用a与上1左移n位取反,a&(1n)。4.如果想将a的第n位(从0为起)取反,就用a异或上1左移n位,a=1n.例子1:#include int main(void) int a=1; a|=12;/把a的第2位变成1 printf(%dn,a); a&=(12);/把a的第2位变成0 printf(%dn,a); a=a2;/把a的第2位取反 printf(%dn,a); if (a&=a2)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论