资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,本章重点,15.1,位运算符,15.2,位运算符运算功效,第,15,章 位运算,第1页,15.1,位运算符,1,数在计算机中存放形式,(,1,)字和字节,(,2,)原码,(,3,)补码,2,位运算符,所谓位运算是指进行二进制位运算。语言提供了六种位运算符,第2页,说明:,(,1,)位运算符中除,以外,都是二元运算符,即要求运算符两侧各有一个运算量(操作数)。,(,2,)位运算只能作用于整型或字符型数据,不能是实型数据。,(,3,)位运算符优先性从高到低次序为:,“,”,“,、,”,“,&,”,“,”,“,|,”,。,(,4,)位运算符与赋值运算符结合组成扩展赋值运算符,即,=,、,&=,、,=,和,|=,。其功效如表,15.2,所表示。,(,5,)两个长度不一样数据进行位运算时,系统先将二者最低位(最右位)对齐,然后将短一方按符号位扩充,无符号数则以,0,扩充。,第3页,运算符,名称,示例,示例说明,优先次序,&,按位与,a&b,a,和,b,位与,从左向右,|,按位或,a|b,a,和,b,位或,从左向右,按位异或,ab,a,和,b,位异或,从左向右,按位取反,a,求a位反,从右向左,左移,a,右移,a3,a,右移,3,位,从左向右,表,15.1 C,语言中位运算符,第4页,说明:,(,1,)位运算符中除,以外,都是二元运算符,即要求运算符两侧各有一个运算量(操作数)。,(,2,)位运算只能作用于整型或字符型数据,不能是实型数据。,(,3,)位运算符优先性从高到低次序为:,“,”,“,、,”,“,&,”,“,”,“,|,”,。,(,4,)位运算符与赋值运算符结合组成扩展赋值运算符,即,=,、,&=,、,=,和,|=,。其功效如表,15.2,所表示。,(,5,)两个长度不一样数据进行位运算时,系统先将二者最低位(最右位)对齐,然后将短一方按符号位扩充,无符号数则以,0,扩充。,第5页,15.2,位运算符运算功效,1,位逻辑运算符,(,1,)位与运算符(,&,)。,(,2,)位或运算符(,|,)。,(,3,)异或运算符(,)。,(,4,)取反运算符(,)。,第6页,与运算符参加运算数以,补码,方式出现。,比如:,9&5,并不等于,14,,而应该是按位与,算式以下:,00001001 (9,二进制补码,),&00000101 (5,二进制补码,),00000001 (1,二进制补码,),第7页,或运算符参加运算两个数均以,补码,出现。,比如:,9|5,可写算式以下:,00001001,|00000101,00001101 (,十进制为,13),第8页,异或运算符参加运算数仍以,补码,出现。,比如,95,可写成算式以下:,00001001,00000101,00001100 (,十进制为,12),取反运算符,比如,9,运算为:,(,0000000000001001,),=,1111111111110110,第9页,2,位移位运算符,(,1,)左移运算符(,)。,3,位自反赋值运算,&=,(自反位与运算)如:,a,&=,b,相当于,a,=,a,&,b,。,|=,(自反位或运算)如:,a,|=,b,相当于,a,=,a,|,b,。,=,(自反右移位运算)如:,a,=,b,相当于,a,=,a,b,。,=,(自反左移位运算)如:,a,=,b,相当于,a,=,b,。,=,(自反异或运算)如:,a,=,b,相当于,a,=,a,b,。,第10页,4,位运算符优先级,(,1,)位反(,)运算符为单目运算符,优于全部双目运算符和三目运算符。,(,2,),位移位运算符优先级相同,比算术运算符优先级低,比关系运算符优先级高。,(,3,),位逻辑运算符优先级比关系运算符优先级低,比逻辑运算符优先级高。,(,4,),3,个位逻辑运算符优先次序为:,&,优于,优于,|,。,(,5,),位自反值运算符和赋值运算符、算术自反值运算符是同级。,第11页,5,位数不一样运算数之间运算规则,位运算对象能够是整型和字符型数据。当两个运算数类型不一样时位数也会不一样。此时,系统将自动进行以下处理:,(,1,)先将两个运算数右端对齐。,(,2,)再将位数短一个运算数往高位扩充,即,无符号数和正整数左侧用,0,补全;负数左侧用,1,补全,;然后对位数相等两个运算数按位进行运算。,第12页,
展开阅读全文