第十二章第十二章主要内容主要内容12
1位运算符和位运算12
2位运算举例12
3位段概念概念位运算是指按二进制位进行的运算
因为在系统软件中,常要处理二进制位的问题
例如:将一个存储单元中的各二进制位左移或右移一位,两个数按位相加等
C语言提供位运算的功能,与其他高级语言(如PASCAL)相比,具有很大的优越性
2025年1月3日4C程序设计§12
1位运算符和位运算位运算符和位运算运算符含义运算符含义&按位与~取反|按位或右移(1)位运算符中除~以外,均为二目(元)运算符,即要求两侧各有一个运算量
(2)运算量只能是整型或字符型的数据,不能为实型数据
C语言提供的位运算符有:说明:说明:2025年1月3日5C程序设计12
1“按位与”运算符(&)按位与”运算符(&)按位与是指:参加运算的两个数据,按二进制位进行“与”运算
如果两个相应的二进制位都为1,则该位的结果值为1;否则为0
即:0&0=0,0&1=0,1&0=0,1&1=1例:3&5并不等于8,应该是按位与运算:注意:如果参加&运算的是负数(如-3&-5),则要以补码形式表示为二进制数,然后再按位进行“与”运算
00000011(3)&00000101(5)00000001(1)3&5的值得12025年1月3日6C程序设计按位与的用途:按位与的用途:若想对一个存储单元清零,即使其全部二进制位为0,只要找一个二进制数,其中各个位符合以下条件:原来的数中为1的位,新数中相应位为0
然后使二者进行&运算,即可达到清零目的
(1)清零例:原有数为00101011,另找一个数,设它为10010100,这样在原数为1的位置上,该数的相应位值均为0
将这两个数进行&运算:00101011&10010100000000002025年1月3日7C程序设计(2)取一个数中某些指定位如有一个整数a(