康辉C语言视频教程9

康辉C语言视频教程9

ID:43162411

大小:116.00 KB

页数:11页

时间:2019-10-01

康辉C语言视频教程9_第1页
康辉C语言视频教程9_第2页
康辉C语言视频教程9_第3页
康辉C语言视频教程9_第4页
康辉C语言视频教程9_第5页
资源描述:

《康辉C语言视频教程9》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第9章位运算9.1位及位运算的概念位运算:二进制位的运算。在内存中每一个字节有一个地址。一个字节由8位二进制位组成。位操作是直接对二进制位进行的,位运算只适用于无符号整型变量。01111101最低位最高位9.2位运算符C语言提供如下位运算符。其中除运算符~以外。都是二目运算符。运算符语义&按位与|按位或∧按位异或~按位取反<<左移>>右移1.按位“与”运算符&参加运算的两个运算量,如果对应二进制位都是1,则该位的结果为1,否则该位是0。例:用按位与操作实现宏is_odd,它判断某个整数是否为

2、奇数:#defineis_odd(x)(1&(unsigned)(x))也可以用按位与运算屏蔽掉某些二进制位,如:c=n&01779.2位运算符2.按位“或”运算符

3、参与运算的两个运算量,如果对应二进制位都是0,则该位的结果值为0,否则该位的结果值是1。按位或运算用来对一个数据的某些二进制位置1。例如:x

4、MASK的运算结果是将x中相应于MASK为1的那些位置1。9.2位运算符3.按位“异或”运算符∧按位异或运算是使参与运算的两个量,如果对应二进制位不同,则该位结果是1,否则该位的结果是0。

5、按位异或操作可以用来检查两个字是否相同。例如:if(x∧y)…/*x和y不同*/9.2位运算符4.按位“取反”运算符~~是单目运算符,用来对一个二进制数按位取反,即将0变为1,将1变成0。这个操作可用于某些依赖于具体计算机字长的应用中,从而使结果代码是可移植的。例如:用来将字x的低3位清零:x=x&0xfff8;但这个操作只能应用于16位字长的计算机。如果计算机的字长为32位,结果将会有所不同。一个可移植的方法是:x=x

6、~0x7;这种表达方式与机器字长无关,也无需额外开销,因为~0x7是个常量

7、表达式,所以是在编译时求值的。9.2位运算符5.左移运算符<>x>>n:把x的每一个二进制位右移n位,丢掉最右边的n位,最左边的n位补0。右移一位相当于将该数除以2。对于负整数,高位补1。9.2位运算符7.位运算符与赋值运算符结合可以组成复合的赋值运算符,这样的运算符有:&=、

8、=、>>=、<<=和^=a&=b相当于a=a&ba

9、=b相当于a=a

10、ba>>=b相当于

11、a=a>>ba<<=b相当于a=a<

12、#defineBITSinCHAR8getbits(x,p,n)unsignedx,p,n;{if(p<0

13、

14、p>=sizeof(x)*BITSinCHAR)return(ERROR);return((x>>(p+1-n))&~(~0<

15、AR-n);c=a>>n;c

16、=b;printf(“%o%o”,a,c);}9.2位运算符

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。