欢迎来到天天文库
浏览记录
ID:50043620
大小:76.00 KB
页数:15页
时间:2020-03-08
《C语言程序设计 教学课件 作者 刘嘉敏ch09 位运算.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第九章位运算9.1位运算符9.2位运算的应用9.3位运算举例第九章位运算1.取反运算符按位“取反”运算是单目运算。它对操作数的二进制位的每一位都取反,即将0变为1,1变为0。“取反”运算的运算符为“~”。例如:设a=10011101,求~aa=10011101~a=011000109.1位运算符第九章位运算2.左移运算符左移运算符“<<”是双目运算符。基本形式是:a<2、移动4位。设a=10010111(十进制数151),左移4位后为10111000(十进制数184)。9.1位运算符第九章位运算3.右移运算符右移运算符“>>”是双目运算符。基本形式是:a>>n,a表示需要向右移动的数,n表示要移动的位数,其功能把“>>”左边的运算数a的各二进位全部右移n位,低位右移后被舍弃,如果是无符号数,高位右移后补0。例如:设a=15,a>>2表示把000001111(十进制数15)的所有位向右移动2位变为00000011(十进制数3)。9.1位运算符第九章位运算4.按位与运算符所谓按位“与”运算,就是参与运算的两个数据3、按二进制位对齐,相应的二进制位进行“与”运算,运算符号为“&”,如果对应的二进制位都是1,运算结果的对应二进制位为1,否则为0。即0&0=0;0&1=0;1&0=0;1&1=1。例如:4&7的结果并不等于11,应该按位“与”进行计算。9.1位运算符第九章位运算5.按位或运算符所谓按位“或”运算,就是参与运算的两个数据按二进制位对齐,相应的二进制位进行“或”运算,运算符号为“4、”,如果对应的二进制位都是0,则运算结果的对应二进制位为0,否则为1。即05、0=0;06、1=1;17、0=1;18、1=1。9.1位运算符第九章位运算6.异或运算符所谓按位“9、异或”运算,就是参与运算的两个数据按二进制位对齐,相应的二进制位进行“异或”运算,运算符号为“^”,如果对应的二进制位相同,则运算结果的对应二进制位为0,如果对应的二进制位不同,则运算结果的对应二进制位为1。即0^0=0;0^1=1;1^0=1;1^1=0。9.1位运算符第九章位运算7.位运算赋值运算符位运算符与赋值运算符可以组成以下5种位运算赋值运算符:&=,10、=,>>=,<<=,^=由这些位运算赋值运算符可以构成位运算赋值表达式。例如:a&=b相当于:a=a&ba11、=b相当于:a=a12、ba<<=3相当于:a=a<<3a>>=2相当于:a=13、a>>2a^=4相当于:a=a^49.1位运算符第九章位运算8.不同长度的数据进行位运算当两个不同长度的数据进行位运算的时候,在保持数值不变的条件下,右对齐进行位运算,其做法是:对于无符号整型和字符型数据,在左侧补充0。对于有符号整型和字符型数据,如果其为正,则在左侧补充0;否则在左侧补充1。9.1位运算符第九章位运算9.1位运算符9.2位运算的应用9.3位运算举例第九章位运算(1)用左移位运算来代替乘法左移位运算a<14、算来代替乘法。(2)用与位运算实现清零如果要使得某个数清零(使其所有二进制位都为0),只需要找一个二进制数,使得被清零的数中为1的位,在这个数中相对应的位为0,然后让这两个数进行&运算,就可以达到清零的效果。(3)用与位运算实现保留一个数中的某些指定位(4)用与位运算验证数据二进制位的某一位或几位是否为19.2位运算的应用第九章位运算9.1位运算符9.2位运算的应用9.3位运算举例第九章位运算【例9-1】假设a是一个16位的二进制整数,要取a从右端开始的4~7位。可以采用下面的方法来实现。1)先使a右移4位,使要取的4~7位移到最右端,如图915、-1所示。其中图(a)是未右移时的情况,图(b)是右移4位后的情况。2)设置一个低4位全为1,其余位全为0的数。3)将1)中的a>>4和2)中的~(~0<<4)进行“&”运算。9.3位运算举例第九章位运算ThankYou!
2、移动4位。设a=10010111(十进制数151),左移4位后为10111000(十进制数184)。9.1位运算符第九章位运算3.右移运算符右移运算符“>>”是双目运算符。基本形式是:a>>n,a表示需要向右移动的数,n表示要移动的位数,其功能把“>>”左边的运算数a的各二进位全部右移n位,低位右移后被舍弃,如果是无符号数,高位右移后补0。例如:设a=15,a>>2表示把000001111(十进制数15)的所有位向右移动2位变为00000011(十进制数3)。9.1位运算符第九章位运算4.按位与运算符所谓按位“与”运算,就是参与运算的两个数据
3、按二进制位对齐,相应的二进制位进行“与”运算,运算符号为“&”,如果对应的二进制位都是1,运算结果的对应二进制位为1,否则为0。即0&0=0;0&1=0;1&0=0;1&1=1。例如:4&7的结果并不等于11,应该按位“与”进行计算。9.1位运算符第九章位运算5.按位或运算符所谓按位“或”运算,就是参与运算的两个数据按二进制位对齐,相应的二进制位进行“或”运算,运算符号为“
4、”,如果对应的二进制位都是0,则运算结果的对应二进制位为0,否则为1。即0
5、0=0;0
6、1=1;1
7、0=1;1
8、1=1。9.1位运算符第九章位运算6.异或运算符所谓按位“
9、异或”运算,就是参与运算的两个数据按二进制位对齐,相应的二进制位进行“异或”运算,运算符号为“^”,如果对应的二进制位相同,则运算结果的对应二进制位为0,如果对应的二进制位不同,则运算结果的对应二进制位为1。即0^0=0;0^1=1;1^0=1;1^1=0。9.1位运算符第九章位运算7.位运算赋值运算符位运算符与赋值运算符可以组成以下5种位运算赋值运算符:&=,
10、=,>>=,<<=,^=由这些位运算赋值运算符可以构成位运算赋值表达式。例如:a&=b相当于:a=a&ba
11、=b相当于:a=a
12、ba<<=3相当于:a=a<<3a>>=2相当于:a=
13、a>>2a^=4相当于:a=a^49.1位运算符第九章位运算8.不同长度的数据进行位运算当两个不同长度的数据进行位运算的时候,在保持数值不变的条件下,右对齐进行位运算,其做法是:对于无符号整型和字符型数据,在左侧补充0。对于有符号整型和字符型数据,如果其为正,则在左侧补充0;否则在左侧补充1。9.1位运算符第九章位运算9.1位运算符9.2位运算的应用9.3位运算举例第九章位运算(1)用左移位运算来代替乘法左移位运算a<14、算来代替乘法。(2)用与位运算实现清零如果要使得某个数清零(使其所有二进制位都为0),只需要找一个二进制数,使得被清零的数中为1的位,在这个数中相对应的位为0,然后让这两个数进行&运算,就可以达到清零的效果。(3)用与位运算实现保留一个数中的某些指定位(4)用与位运算验证数据二进制位的某一位或几位是否为19.2位运算的应用第九章位运算9.1位运算符9.2位运算的应用9.3位运算举例第九章位运算【例9-1】假设a是一个16位的二进制整数,要取a从右端开始的4~7位。可以采用下面的方法来实现。1)先使a右移4位,使要取的4~7位移到最右端,如图915、-1所示。其中图(a)是未右移时的情况,图(b)是右移4位后的情况。2)设置一个低4位全为1,其余位全为0的数。3)将1)中的a>>4和2)中的~(~0<<4)进行“&”运算。9.3位运算举例第九章位运算ThankYou!
14、算来代替乘法。(2)用与位运算实现清零如果要使得某个数清零(使其所有二进制位都为0),只需要找一个二进制数,使得被清零的数中为1的位,在这个数中相对应的位为0,然后让这两个数进行&运算,就可以达到清零的效果。(3)用与位运算实现保留一个数中的某些指定位(4)用与位运算验证数据二进制位的某一位或几位是否为19.2位运算的应用第九章位运算9.1位运算符9.2位运算的应用9.3位运算举例第九章位运算【例9-1】假设a是一个16位的二进制整数,要取a从右端开始的4~7位。可以采用下面的方法来实现。1)先使a右移4位,使要取的4~7位移到最右端,如图9
15、-1所示。其中图(a)是未右移时的情况,图(b)是右移4位后的情况。2)设置一个低4位全为1,其余位全为0的数。3)将1)中的a>>4和2)中的~(~0<<4)进行“&”运算。9.3位运算举例第九章位运算ThankYou!
此文档下载收益归作者所有