- 1、本文档共30页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]位运算成
* 第九章 位运算 位运算符和位运算 位运算举例 位段 第9章作业 位运算符和位运算 位运算是指对二进制位进行的运算。 由于在编写系统软件中常要对二进制位进行处理,故C语言提供的位运算功能很适合于编写系统软件的需要。由此可见,C语言可以直接对计算机硬件进行操作,它不仅具有高级语言的特性,也具有低级语言的功能。 位运算符和位运算 运算符 含义 运算符 含义 & 按位与 ~ 取反 | 按位或 左移 ∧ 按位异或 右移 (1) 运算对象只能是整型或字符型数据,不能为实型数据。 (2) 两个长度不同的数据进行位运算时,系统先将两者按右端对齐,短数据若为无符号数则高位直接补0,若为带符号数则高位进行符号扩展。 (3) 优先级:~,!→算术→, →关系→→∧→|→→|| C语言提供的位运算符有: 说明: 一、“按位与”运算符() 1、运算规则: 如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。即只要有一个为0,则结果为0。 0&0=0, 0&1=0, 1&0=0, 1&1=1 例:计算071052(八进制数)。 位运算符和位运算 071) 052) 050) 即:071052=050 2、特征: (1)某二进制位与0进行“”运算,则该位清零; (2)某二进制位与1进行“”运算,则保留原值。 3、应用 位运算符和位运算 若要把数据a的某些位清零,其余位保持不变,只需将需要清零的位与0进行“”运算,即可达到清零目的。 (1) 清零。 位运算符和位运算 例: 原有数a要将a的右面第2位和第5位清零,其余位保持不变,可进行如下处理:另找一个数,设它将这两个数进行&运算: 位运算符和位运算 (2)取一个数中某些位(保留某些位)。 若要取出数据a的某些位,只需将需要取出的位与1进行“”运算即可。 例:有一数a 想取出a的右面第3、4、7、8位,可进行如下处理: 这种取一个数的某几位的方法称为“屏蔽方法”。 二、“按位或”运算符(|) 1、运算规则: 如果两个相应的二进制位都为0,则该位的结果值为0;否则为1。即只要有一个为1,则结果为1。 0|0=0, 0|1= 1, 1|0= 1, 1|1=1 例:计算071|052。 071|052=073 2、特征: (1)某二进制位与1进行“|”运算,则该位定值为1; (2)某二进制位与0进行“|”运算,则保留原值。 3、应用 位运算符和位运算 位运算符和位运算 若要将数据a的某些位定值为1,其余位保持不变,只需将需要置1的位与1进行“|”运算即可。 (1) 将一个数的某些位定值为1。 例: 若数a要将a的右面第3位和第6位置1,其余位保持不变,可进行如下处理:另找一个数,设它将这两个数进行|运算: | (2)取一个数中某些位(保留某些位)。 若要取出数据a的某些位,只需将需要取出的位与0进行“|”运算即可。 三、“按位异或”运算符(∧) 1、运算规则: 如果两个相应的二进制位不同(为“异”),则该位的结果值为1;否则为0。 0 ∧ 0=0, 0 ∧ 1= 1, 1 ∧ 0= 1, 1 ∧ 1= 0 例:计算071∧052。 071 ∧ 052=023 2、特征: (1)某二进制位与1进行“∧”运算,则该位取反; (2)某二进制位与0进行“∧”运算,则保留原值。 3、应用 位运算符和位运算 位运算符和位运算 要使数据的某位取反只要使其与1进行“∧”运算,要使某位保留原值只要使其与0进行“∧”运算。 (1) 使某些位取反。 例: 若a要将a的右面第3位和第5位取反,其余位保持不变,可进行如下处理:另找一个数,设它将这两个数进行∧运算: ∧ 位运算符和位运算 (2) 同一个数据进行“∧”运算后,结果为0。 例: 若a则表达式a∧a的计算结果如下: ∧ 0101001
文档评论(0)