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

第12章 位运算VIP免费

第12章 位运算_第1页
1/32
第12章 位运算_第2页
2/32
第12章 位运算_第3页
3/32
第十二章位运算及其应用•一、位运算的分类:•位逻辑运算、位移运算两种•二、位逻辑运算[符]:•&|^~•【位逻辑运算的特点】•▲只作用于整型、字符型数据;•▲作用于整型、字符型数据的每个二进制位,不是数的整体•▲而一般逻辑运算是作用数的整体,不是数的每个二进制位。运算结果是二进制数。1、按位与运算符(&):1)运算规则:0&0=01&0=00&1=01&1=1▲只要对应位上的值均为1则该位上的结果值为12)特殊作用。①将一个存储单元各位清0②取某个数中的某些位。▲方法:将本数与某个特定数按位与运算即可。2、按位或运算符(|)1)运算规则:0|0=01|0=10|1=11|1=1▲只要对应位上的值其中一个为1则该位上的结果值为12)特殊作用。①常用于将一个数的某些特定位置为1▲方法:将本数与某个特定数按位或运算即可。3、按位异或运算符(^)1)运算规则:0^0=01^0=10^1=11^1=0▲只要对应位上的值互不相同则该位上的结果值为12)特殊作用[p300]。①使某些特定的翻转②任何数与0相异或结果保留原数本身③交换两个变量的值不用中间变量。a=a^bb=b^aa=a^b▲注意给变量赋值的先后顺序。4、按位异求反运算符(~)1)运算规则:~0=1~1=0▲对每个上的值按位求反:1变为0;0变为1。▲注意以上位逻辑运算的优先级别。▲注意:~运算符比算术运算、关系运算、逻辑运算和其它运算的优先级别都高。三、位移运算[符]:<<和>>1、左位移运算符(<<):1)运算规则:a=a<>)]1)运算规则:a=a>>n将a中所有位向右移动n位。2)运算的作用:相当于除法运算。右移一位相当于除以2。【注意】注意数的符号问题[即正负的问题]▲对于无符号数[正数]右移时高位补以0。▲对于有符号数,高位为0[正数]右移时高位补以0。▲对于有符号数,高位为1[负数]时:①右移时高位补以0,称之为“逻辑位移”。②右移时高位补以1,称之为“算术位移”。▲TC采用“算术位移”,高位补以1。左位移运算符(<<)1)运算规则:a=a<>=,<<=,=∧例如,a&=b相当于a=a&b。a<<=2相当于:a=a<<2。12.1.8不同长度的数据进行位运算如果两个数据长度不同(例如long型和int型)进行位运算时(如a&b,而a为long型,b为int型),系统会将二者按右端对齐。如果b为正数,则左侧16位补满0。若b为负数,左端应补满1。如果b为无符号整数型,则左侧添满0。12.2位运算举例例12.1取一个整数a从右端开始的4~7位。可以这样考虑:①先使a右移4位。见图12.3。图12.3(a)是未右移时的情况,(b)图是右移4位后的情况。目的是使要•取出的那几位移到最右端。图12.3••••••••••••••••••••••••可以任意指定从右面第m位开始取其右面n位。只需将程序中的“b=a>>4”改成“b=a>>(m-n+1)”以及将“c=~(~0<<4)”改成“c=~(~0<<n)”即可。•例12.2循环移位。要求将a进行右循环移位。见图12.4。图12.4表示将a右循环移n位。即将a中原来左面(16-n)位右移n位,原来右端n位移到最左面n位。今假设用两个字节存放一个整数。为实现以上目的可以用以下步骤:•①将a的右端n位先放到b中的高n位中。可以用下面语句实现:b=a<<(16-n);••••••••••••••••••12.3位段•以前曾介绍过对内存中信息的存取一般以字节为单位。实际上,有时存储一个信息不必用一个或多个字节,例如,“真”或“假”用0或1表示,只需1位即可。在计算机用于过程控制、参数检测或数据通信领域时,控制信息往往只占一个字节中的一个或几个二进位,常常在一个字节中放几个信息。那么,怎样向一个字节中的一个或几个二进位赋值和改变它的值呢?可以用以...

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

碎片内容

第12章 位运算

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部