当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

清华大学:《C语言程序设计》课程电子教案(PPT教学课件,第二版)第十二章 位运算

资源类别:文库,文档格式:PPT,文档页数:46,文件大小:310KB,团购合买
第12章位运算 12.1位运算符和位运算 12.2位运算举例 12.3位段
点击下载完整版文档(PPT)

清华大学出版社 TSINGHUA UNIVERSITY PRESS 第12章位运算 121位运算符和位运算 122位运算举例 123位段 习题

第12章 位运算 12.1 位运算符和位运算 12.2 位运算举例 12.3 位段 习题

清华大学出版社 TSINGHUA UNIVERSITY PRESS C语言是为描述系统而设计的,因此它应当具有汇编 语言所能完成的一些功能。C语言既具有高级语言的 特点,又具有低级语言的功能,因而具有广泛的用途 和很强的生命力。第9章介绍的指针运算和本章将介 绍的位运算就很适合于编写系统软件的需要,是C语 言的重要特色。在计算机用于检测和控制领域中要用 到位运算的知识,因此读者应当学习和掌握本章的内 容 所谓位运算是指进行二进制位的运算。在系统软件中, 常要处理二进位的问题。例如,将一个存储单元中的 各二进位左移或右移一位,两个数按位相加等。C语 言提供位运算的功能,与其他高级语言(如 PASCAL 相比,它显然具有很大的优越性

• C语言是为描述系统而设计的,因此它应当具有汇编 语言所能完成的一些功能。C语言既具有高级语言的 特点,又具有低级语言的功能,因而具有广泛的用途 和很强的生命力。第9章介绍的指针运算和本章将介 绍的位运算就很适合于编写系统软件的需要,是C语 言的重要特色。在计算机用于检测和控制领域中要用 到位运算的知识,因此读者应当学习和掌握本章的内 容。 • 所谓位运算是指进行二进制位的运算。在系统软件中, 常要处理二进位的问题。例如,将一个存储单元中的 各二进位左移或右移一位,两个数按位相加等。C语 言提供位运算的功能,与其他高级语言(如PASCAL) 相比,它显然具有很大的优越性

清华大学出版社 TSINGHUA UNIVERSITY PRESS 121位运算符和位运算 1211“按位与”运算符(&) 参加运算的两个数据,按二进位进行“与”运算。 如果两个相应的二进位都为1,则该位的结果值为 1,否则为0。即 0&0=0;0&1=0;1&0=0;1&1=1; 例如:3&5并不等于8,应该是按位与。 3=00000011 (&)5=00000101 00000001

12.1.1 “按位与”运算符(&) • 参加运算的两个数据,按二进位进行“与”运算。 如果两个相应的二进位都为1,则该位的结果值为 1,否则为0。即 • 0&0=0;0&1=0;1&0=0;1&1=1; • 例如: 3&5 并不等于8,应该是按位与。 3 = 00000011 (&) 5 = 00000101 00000001 12.1 位运算符和位运算

清华大学出版社 TSINGHUA UNIVERSITY PRESS 因此,3&5的值得1。如果参加&是负数运算的是 负数(如3&-5),则以补码形式表示为二进制数, 然后按位进行“与”运算。 按位与有一些特殊的用途 (1)清零。如果想将一个单元清零,即使其全部 二进位为0,只要找一个二进制数,其中各个位 符合以下条件:原来的数中为1的位,新数中相 应位为0。然后使二者进行&运算,即可达到清 零目的。 如:原有数为00101011,另找一个数,设它为 10010100,它符合以上条件,即在原数为1的位 置上,它的位值均为0。将两个数进行&运算:

因此,3&5的值得1。如果参加&是负数运算的是 负数(如-3 & -5),则以补码形式表示为二进制数, 然后按位进行“与”运算。 按位与有一些特殊的用途: (1) 清零。 如果想将一个单元清零,即使其全部 二进位为0,只要找一个二进制数,其中各个位 符合以下条件:原来的数中为1的位,新数中相 应位为0。然后使二者进行&运算,即可达到清 零目的。 如:原有数为00101011,另找一个数,设它为 10010100,它符合以上条件,即在原数为1的位 置上,它的位值均为0。将两个数进行&运算:

清华大学出版社 TSINGHUA UNIVERSITY PRESS 00101011 (&)10010100 00000000 其道理是显然的。当然也可以不用10010100这个 数而用其他数(如010001000可以,只要符合上述 条件即可。 ·(2)取一个数中某些指定位。如有一个整数a(2个 字节),想要其中的低字节。只需将a与(737)8按位 与即可。见图121

00101011 (&) 10010100 00000000 • 其道理是显然的。当然也可以不用10010100这个 数而用其他数(如01000100)也可以,只要符合上述 条件即可。 • (2) 取一个数中某些指定位。如有一个整数a(2个 字节),想要其中的低字节。只需将a与(737)8按位 与即可。见图12.1

清华大学出版社 TSINGHUA UNIVERSITY PRESS a0010110010101100 b「0000000011111111 c[0000000010101100 图 12.1 a[0010110010101100 1111111100000000 c[0010110000000000 图122

图12.2 图12.1

清华大学出版社 TSINGHUA UNIVERSITY PRESS c=a&b,b为八进制数的377,运算后c只保留a的低字节, 高字节为0。 如果想取两个字节中的高字节,只需c=a&0177400 (0177400表示八进制数的177400)。见图122。 (3)要想将哪一位保留下来,就与一个数进行&运算,此数 在该位取1,如:有一数01010100,想把其中左面第3、4 5、7、8位保留下来,可以这样运算: 01010100(+进制数84) (&)00111011(十进制数59) 000100进制数16) 即a=84,b=59,c=a&b=16

• c=a&b,b为八进制数的377,运算后c只保留a的低字节, 高字节为0。 • 如果想取两个字节中的高字节,只需c=a & 0177400 (0177400表示八进制数的177400)。见图12.2。 • (3) 要想将哪一位保留下来,就与一个数进行&运算,此数 在该位取1,如:有一数01010100,想把其中左面第3、4、 5、7、8位保留下来,可以这样运算: • 01010100 (十进制数84) • (&)00111011 (十进制数59) • 00010000(十进制数16) • 即 a=84,b=59,c=a&b=16

清华大学出版社 TSINGHUA UNIVERSITY PRESS 1212按位或运算符() 两个相应的二进位中只要有一个为1,该位的结 果值为1。即00=0;01=1;10=1;11=1 例如:060017 将八进制数60与八进制数17进行按位或运算。 00110000 000011 00111 低4位全为1。如果想使一个数a的低4位改为1, 只需将a与017进行按位或运算即可。 按位或运算常用来对一个数据的某些位定值为1。 如:a是一个整数(16位,有表达式a1037则低8

12.1.2 按位或运算符(|) • 两个相应的二进位中只要有一个为1,该位的结 果值为1。即0|0=0; 0|1=1; 1|0=1; 1|1=1。 例如:060|017 • 将八进制数60与八进制数17进行按位或运算。 • 00110000 • (|) 00001111 • 00111111 • 低4位全为1。如果想使一个数a的低4位改为1, 只需将a与017进行按位或运算即可。 • 按位或运算常用来对一个数据的某些位定值为1。 如:a是一个整数(16位),有表达式a |0377则低8

清华大学出版社 TSINGHUA UNIVERSITY PRESS 位全置为1。高8位保留原样。 12.13“异或”运算符(∧) 异或运算符∧也称XOR运算符。它的规则是若参 加运算的两个二进位同号,则结果为0(假);异号 则为1(真)。即0∧0=0;0A1=1;1∧0=1; 1∧1=0;如: 0011001(十进制数57,八进制数071) ()00101010(十进制数42,八进制数052 00010011(十进制数19,八进制数023) 即071∧052,结果为023(八进制数)

位全置为1。高8位保留原样。 12.1.3 “异或”运算符(∧) • 异或运算符∧也称XOR运算符。它的规则是若参 加运算的两个二进位同号,则结果为0(假);异号 则为1(真)。即0∧0=0; 0∧1=1; 1∧0=1; 1∧1=0;如: • 00111001 (十进制数57,八进制数071) • (∧)00101010 (十进制数42,八进制数052) • 00010011 (十进制数19,八进制数023) • 即071∧052,结果为023(八进制数)

清华大学出版社 TSINGHUA UNIVERSITY PRESS “异或”的意思是判断两个相应的位值是否为 “异”,为“异”(值不同)就取真(1),否则为假 下面举例说明∧运算符的应用: (1)使特定位翻转 假设有01111010,想使其低4位翻转,即1变 为0,0变为1。可以将它与00001,行∧运算, 01111010 (∧000011 01110101

• “异或”的意思是判断两个相应的位值是否为 “异”,为“异”(值不同)就取真(1),否则为假 (0)。 • 下面举例说明∧运算符的应用: • (1) 使特定位翻转 • 假设有01111010,想使其低4位翻转,即1变 为0,0变为1。可以将它与00001111进行∧运算, 即 • 01111010 • (∧)00001111 • 01110101

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共46页,可试读16页,点击继续阅读 ↓↓
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有