C语言 第14章 位运算.ppt
《C语言 第14章 位运算.ppt》由会员分享,可在线阅读,更多相关《C语言 第14章 位运算.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、教学内容:教学内容:14.1 14.1 位逻辑运算位逻辑运算 14.2 14.2 位移位运算位移位运算 14.3 14.3 复合位运算复合位运算 14.4 14.4 位段位段 教学要求:教学要求:1.1.掌握掌握按位与运算、按位或运算、按位异或运算、按位与运算、按位或运算、按位异或运算、取反运算、左移运算、右移运算取反运算、左移运算、右移运算的运算规则的运算规则。2.2.掌握掌握位段的应用位段的应用。第第1414章章 位位 运运 算算 为了节省内存空间,在系统软件中常将多个标志状为了节省内存空间,在系统软件中常将多个标志状态简单地组合在一起,存储到一个字节(或字)中。态简单地组合在一起,存储到
2、一个字节(或字)中。语言语言 提供了实现将标志状态从标志字节中分离出来的位提供了实现将标志状态从标志字节中分离出来的位运算功能。运算功能。C 既具有高级语言的特点,又具有低级语言的功能,既具有高级语言的特点,又具有低级语言的功能,位运算能力就是其特色之一。位运算能力就是其特色之一。位运算就是指进行二进制位的运算。位运算就是指进行二进制位的运算。C提供的位运算提供的位运算有:有:名称名称 运算符运算符 名称名称 运算符运算符 按位与按位与&按位异或按位异或 按位或按位或 左移左移 14.1 14.1 位位 逻逻 辑辑 运运 算算 1.1.位运算说明位运算说明 (1 1)位位运运算算的的操操作作数
3、数,只只能能是是整整型型或或字字符符型型数数据据,不能为实型数据。不能为实型数据。(2 2)位位运运算算符符中中除除按按位位取取反反“”为为单单目目运运算算符符外外,其余均为二目运算符,即要求两侧各有一个运算量。其余均为二目运算符,即要求两侧各有一个运算量。(3 3)参参与与运运算算时时,操操作作数数都都必必须须首首先先转转换换成成二二进进制制形式,然后再执行相应的按位运算。形式,然后再执行相应的按位运算。2.2.按位与运算符按位与运算符 (1)(1)按位与运算符:按位与运算符:&(2)(2)按按位与运算格式:位与运算格式:操作数操作数&操作数操作数 (3)(3)按位与运算规则按位与运算规则
4、将将2 2个个操操作作数数先先转转换换成成二二进进制制数数(补补码码),当当参参加加运运算算的的2 2个个二二进进制制数数之之对对应应位位都都为为1 1,则则该该位位的的结结果果为为1 1,否否则则为为0 0,即:即:0&0=0 0&1=0 1&0=0 1&1=1 例:例:3&5=13的补码:的补码:0 0 0 0 0 0 1 15的补码:的补码:0 0 0 0 0 1 0 1 3&5 0 0 0 0 0 0 0 1 取一个数中的某些指定位清零如:取一个数中的某些指定位清零如:a:0 0 1 0 1 1 0 0 1 0 1 0 1 1 0 0 b:0 0 0 0 0 0 0 0 1 1 1 1
5、 1 1 1 1 (377)8 a&b 0 0 0 0 0 0 0 0 1 0 1 0 1 1 0 0 结果得到结果得到 a 的低的低 8 位位(4)(4)按位与运算作用按位与运算作用main()int x,y;x=25;y=568;printf(“x&y:%dn”,x&y);printf(“3&14:%dn”,3&14);printf(“3&14:%dn”,3&14);printf(“12&12:%dn”,12&12);运行结果运行结果:x&y:24 3&14:2 3&14:12 12&12:12 例例14.1 编程对两个整型变量、整型常量分别进行编程对两个整型变量、整型常量分别进行按按位与
6、运算,并输出它们的值。程序如下位与运算,并输出它们的值。程序如下 3.按位或运算按位或运算 (1 1)按位或运算符:)按位或运算符:(2 2)按按位或运算格式:位或运算格式:操作数操作数 操作数操作数 (3 3)运算规则:)运算规则:参加运算的两个运算量之对应位参加运算的两个运算量之对应位,只要有只要有一个为一个为1 1,则该位的结果为,则该位的结果为1 1。即:。即:0 0=0 0 1=1 1 0=1 1 1=1 例如:例如:00110000 (060)8 00001111 (017)8 00111111 (077)8 一个数与一个数与017进行按位或运算,可将该数的低进行按位或运算,可将该
7、数的低4位位全置为全置为1 1;与;与0377进行按位或运算,可将该数的低进行按位或运算,可将该数的低8位全置为位全置为1。4.异或运算异或运算 (1 1)运算符)运算符 (2 2)按按位位异或异或运算格式:运算格式:操作数操作数 操作数操作数 (3 3)按位按位异异或运算规则或运算规则:参加运算的两个运算量参加运算的两个运算量的对应位相同,则该位的结果为的对应位相同,则该位的结果为0 0。否则为。否则为1 1。即:。即:0 0=0 0 1=1 1 0=1 1 1=0 (4 4)运算的用途:使指定的位翻转)运算的用途:使指定的位翻转 如:如:01111010 00001111 对应原数的低对应
8、原数的低4位均置为位均置为1 01110101 原数的低原数的低4位被翻转位被翻转 5.5.取反运算取反运算 (1 1)运算符)运算符 (2 2)按位取反按位取反运算格式:运算格式:操作数操作数 (3 3)按位取反按位取反运算运算规则规则 :是对一个二进制数按位取反,是对一个二进制数按位取反,即将即将0 0变为变为1 1,1 1变为变为0 0。例如:例如:a 的补码:的补码:0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 a 1 1 1 1 0 0 1 1 0 1 1 0 1 1 0 0 (4 4)按位取反按位取反运算运算主要用途主要用途 按位取反按位取反运算运算主要用途是间接
9、地构造一个数,以增强程主要用途是间接地构造一个数,以增强程序的可移植性。例如,通过求序的可移植性。例如,通过求 0 0,可以间接地构造一个,可以间接地构造一个各位全各位全1 1的的二进制二进制数。数。main()int x=25;unsigned int y=0;printf(“25:%dn”,25);printf(“x:%dn”,x);printf(“y(1):%dn”,y);printf(“y(2):%un”,y);运行结果运行结果:25:26 x:24 y(1):1 y(2):65535例例14.214.2 编程编程输出按位取反运算的值。程序如下输出按位取反运算的值。程序如下:14.2
10、14.2 位位 移移 位位 运运 算算 1.1.按位按位左移运算左移运算 (1)(1)按位按位左移运算符左移运算符:(2)(2)按位按位左移运算格式:左移运算格式:操作数操作数移移位数位数 (3)(3)按位按位左移运算左移运算规则规则:将一个将一个操作数先转换成操作数先转换成二二进制进制数数,然后将二进制,然后将二进制数各位左移数各位左移若干位若干位,并在并在低低位补位补若干个若干个0 0,高位左移后溢出,舍弃不起作用。高位左移后溢出,舍弃不起作用。(4)(4)按位按位左移左移运算用途运算用途:将乘以将乘以 2 2n n 的幂运算处理的幂运算处理为左移为左移 n n 位。位。例如:例如:72
11、按位按位左移表达式的值:左移表达式的值:2828 例例14.3 变量的位运算符变量的位运算符#include main()unsigned a;a=7 (2)(2)按位右按位右移运算格式:移运算格式:操作数操作数移移位数值位数值 (3)(3)按位按位右移运算右移运算规则规则:将一个将一个操作数先转换成操作数先转换成二进制二进制数数,然后将二进制然后将二进制数各位数各位右右移移若干位若干位,移出的低位舍弃;,移出的低位舍弃;并在并在高高位补位补位,位,补补位分位分2 2种情况种情况:若为无符号数,右移时左边高位移入若为无符号数,右移时左边高位移入0 0。若为有符号数,如果原来符号位为若为有符号数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 第14章 位运算 语言 14 运算
限制150内