电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

C语言程序设计第12章(位运算)VIP免费

C语言程序设计第12章(位运算)_第1页
1/19
C语言程序设计第12章(位运算)_第2页
2/19
C语言程序设计第12章(位运算)_第3页
3/19
第十二章位运算第十二章位运算位运算是指进行二进制位的运算位运算是指进行二进制位的运算,,即对字节或字即对字节或字节内部的节内部的二进制位二进制位进行运算。进行运算。计算机中是以计算机中是以补码形式补码形式存放数的存放数的..正数正数::原码原码,,反码反码,,补码相同补码相同..负数的补码负数的补码::符号位不变,数值位按位取反加符号位不变,数值位按位取反加11如如::+7+7::-7:-7:0000011111111001一.位运算符•参加位运算数据类型:有符号和无符号的整型数(包括:char、shortint、longunsigned)•位运算符共6种:&|^~<<>>1.~1.~((按位取反运算符按位取反运算符))作用:对一个二进制数逐位取反。注意注意::~运算和!运算的区别。~的优先级与++、--、!同级。结合性从右至左。如:a=15则~a例例12.1main()12.1main(){{inta=0,b=1;inta=0,b=1;printf(“%d,%d\n”,printf(“%d,%d\n”,~a~a,,~b~b););printf(“%d,%d\n”,printf(“%d,%d\n”,!a!a,,!b!b););}}运行结果运行结果::-1,-2-1,-21,01,000000000000011111111111111110000a~a000000000000000011111111111111110~0~02.&(按位与运算)作用:对参加运算的两个二进制数逐位进行逻辑与运算。如:a&b规则:0&0=0,1&0=0,0&1=0,1&1=1例如:a=1,b=-2,则:a&b=0例:main(){inta=5,b=12,d;d=a&b;printf(“%d&%d=%d\n”,a,b,d);}输出:5&12=4此例说明:a,b两个操作数参加&运算前后,其值不变。000000010000000011111110111111110000000000000000aba&b3.|(按位或运算)作用:对参加运算的两个二进制数逐位进行逻辑或运算。如:a|b规则:0|0=0,1|0=1,0|1=1,1|1=1例如:a=1,b=-1,则:a|b=-1.000000010000000011111111111111111111111111111111aba|b4.^(按位异或运算)作用:对参加运算的两个二进制数逐位进行逻辑异或运算.如:a^b规则:0^0=0,1^0=1,0^1=1,1^1=0例如:a=15,b=0,则:a^b=15000011110000000000000000000000000000111100000000aba^b例:main(){inta=3,b=4;a=a^b;b=b^a;a=a^b;printf(“%d,%d”,a,b);}输出:4,3结论:利用异或运算,可以设置第三个变量就可以实现两个整型变量值的交换。000000110000000000000100000000000000011100000000aba0000001100000000b0000010000000000a5.<<(左移位运算)作用:将操作数的各个二进位顺序左移。右端空出的位补0,而移出左端之外的位则舍去。如:a<>(右移运算符)作用:将操作数的各个二进位顺序右移。左端空出的位补0或补1,而移出右端之外的位则舍去.如:a>>n表示将a的各个二进位顺序右移n位说明:右移运算的结果与操作数的符号有关1)对无符号数进行右移,左端空出的位一律补0。2)对用补码表示的有符号数,则随系统而定。“逻辑右移”空位一律补0;“算术右移”正数右移,空位补0;负数右移,空位补1。(TurboC中采用算术右移)例如:a=-32768000000001000000000000000010000000000000011000000aa>>1a>>1逻辑右移,结果为16384算术右移,结果为-16384算术右移运算相当于除2运算。右移1位,相当于除2。右移n位,则除2n。二.1.位运算符的优先级结合性:~运算按从右至左,其余按从左至右例:x&~077x&(~077)x>>2&y<<3(x>>2)&(y<<3)2.复合赋值运算&=,|=,^=,<<=,>>=如:a&=ba=a&ba<<=m+1a=a<

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

C语言程序设计第12章(位运算)

确认删除?
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群