- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序设计第12章(位运算),c语言位运算,c语言位运算及应用,c语言中位运算,c语言中的位运算,c语言的位运算,c语言按位运算,c语言位运算翻转,c语言程序设计第一章,c语言程序设计
第十二章 位运算 位运算是指进行二进制位的运算,即对字节或字节内部的二进制位进行运算。 计算机中是以补码形式存放数的. 正数: 原码,反码,补码相同. 负数的补码: 符号位不变,数值位按位取反加1 如: + 7: - 7 : 11111001 一.位运算符 参加位运算数据类型: 有符号和无符号的整型数(包括:char、short int、 long unsigned) 位运算符共 6 种: | ^ ~ 1. ~ (按位取反运算符) 作用: 对一个二进制数逐位取反。 注意: ~ 运算和 ! 运算的区别。 ~ 的优先级与++、--、 ! 同级。结合性从右至左。 如: a=15则 ~ a 例12.1 main( ) { int a=0,b=1; printf (“ %d,%d \n”, ~a ,~b ) ; printf (“ %d,%d \n”, !a , !b ) ; } 运行结果: ?-1 , -2 1 , 00000111111110000 a ~ a0000000011111111 0 ~0 2. (按位与运算) 作用: 对参加运算的两个二进制数逐位进行逻辑与运算。 如: a b 规则: 00 = 0 , 10 = 0 , 01 = 0 , 11 = 1 例如: a =1 , b = -2 , 则: a b = 0 例: main( ) { int a=5,b=12, d; d=ab ; printf(“%d%d=%d\n”, a,b,d); } 输出: 512 = 4 此例说明: a , b 两个操作数参加 运算前后,其值不变。000000001111111100000000 a b ab 3. | (按位或运算) 作用: 对参加运算的两个二进制数逐位进行逻辑或 运算。 如: a | b 规则: 0 | 0 = 0 , 1 | 0 = 1 , 0 | 1 = 1 , 1 | 1 = 1 例如: a = 1 , b = -1 , 则: a | b = -1.000000001111111111111111 a b a|b 4. ^ (按位异或运算) 作用: 对参加运算的两个二进制数逐位进行逻辑 异 或运算. 如: a^b 规则: 0^0 = 0 , 1^0 = 1 , 0^1 = 1 , 1^1 = 0 例如: a=15, b=0, 则: a^b=15000000000000000000000000 a b a^b 例 : main ( ) { int a = 3 , b = 4 ; a=a^b; b=b^a; a=a^b; printf(“%d,%d”,a,b); } 输出: 4, 3 结论: 利用异或运算,可以设置第三个变量就可以 实现 两个整型变量值的交换。000000000000000000000000 a b a00000000 b00000000 a 5. (左移位运算)
文档评论(0)