中国高校课件下载中心 》 教学资源 》 大学文库

齐齐哈尔大学:《C语言程序设计》课程教学课件(PPT讲稿)位运算

文档信息
资源类别:文库
文档格式:PPTX
文档页数:11
文件大小:344.95KB
团购合买:点击进入团购
内容简介
齐齐哈尔大学:《C语言程序设计》课程教学课件(PPT讲稿)位运算
刷新页面文档预览

爵帝哈尔大学 QIQIHAR UNIVER 位运算 多 History 主讲:耿蕊

位 运 算 主讲:耿蕊

位运算 C语言提供了6种位运算符。 运算符 含义 运算符 含义 按位取反 & 按位与 > 右移 按位或 运算符的优先级由高到低的顺序是(其中两个移位运算符同级): ~→>→8&→A→ 位运算的操作数必须是整数或字符型数据

位运算 C语言提供了6种位运算符。 运算符 含义 运算符 含义 ~ 按位取反 & 按位与 > 右移 | 按位或 运算符的优先级由高到低的顺序是(其中两个移位运算符同级): ~ → > → & → ^ → | 位运算的操作数必须是整数或字符型数据

\2“按位或”运算 History 参与运算的两个数按二进制位进行&(与)运算,只有对应的两个二 进制位均为1时,结果位才为1,否则为0。即: 1&1=1,1&0=0,0&1=0,0&0=0 例如:9&5的值是1

2 “按位或”运算 参与运算的两个数按二进制位进行&(与)运算,只有对应的两个二 进制位均为1时,结果位才为1,否则为0。即: 1&1=1,1&0=0,0&1=0,0&0=0 例如:9&5的值是1

y1“按位与”运算 History 参与运算的两个数按二进制位进行引(或)运算,只要对应的两个二 进制位有一个为1,结果就是1,只有两个二进制位都是0的时候才是0, 即: 11=1,10=1,01=1,00=0 例如:915的值是13

1 “按位与”运算 参与运算的两个数按二进制位进行|(或)运算,只要对应的两个二 进制位有一个为1,结果就是1,只有两个二进制位都是0的时候才是0, 即: 1|1=1,1|0=1,0|1=1,0|0=0 例如:9|5的值是13

y3.“按位异或”运算 History 参与运算的两个量的对应二进制位只要相同结果就是0,否则是1,即: 1N1=0,1^0=1,0N1=1,00=0 例如:9^5=12

3.“按位异或”运算 参与运算的两个量的对应二进制位只要相同结果就是0,否则是1,即: 1^1=0,1^0=1,0^1=1,0^0=0 例如:9^5=12

4“按位取反”运算 History ~是位运算符中唯一的单目运算符,其作用是把一个数二进制补码表 示的每一位都取反,把0变成1,把1变成0。这里需要特别注意的是,应 对一个数据的全部二进制位取反,例如对于用4个字节存储一个整数的情 况,需要对其32位全部取反

4 “按位取反”运算 ~是位运算符中唯一的单目运算符,其作用是把一个数二进制补码表 示的每一位都取反,把0变成1,把1变成0。这里需要特别注意的是,应 对一个数据的全部二进制位取反,例如对于用4个字节存储一个整数的情 况,需要对其32位全部取反

y5“左移”和“右移”运算 ART History 移位运算的一般格式为: 操作数移位运算符移动位数 例如:12<<1的值是24。而-9<<1的值是-18

5 “左移”和“右移”运算 移位运算的一般格式为: 操作数 移位运算符 移动位数 例如:12 << 1的值是24。而-9 << 1的值是-18

\6位赋值运算符 History 位运算符与赋值运算符可以组成复合赋值运算符,这样的运算符共有 5个(取反运算符~不能与赋值运算结合): >>=、<<=、&=、N=、|=

6 位赋值运算符 位运算符与赋值运算符可以组成复合赋值运算符,这样的运算符共有 5个(取反运算符~不能与赋值运算结合): >>=、<<=、&=、 ^= 、|=

y位运算 History 【例10-13】交换整型变量a、b的内容,不用引入其他临时单元。采用下面的3个异或运算 式子就可以实现该功能:a=abb=baa=ab 程序如下: #include "stdio.h" main() int a,b; printf("请输入两个整数:"); scanf"%d%d",&a,&b)月 printf"交换前:a=%d,b=%dn",a,b); a=a^b: b-ba, a=a^b: printf"交换后:a=%d,b=%dn",a,b);

位运算 【例10-13】交换整型变量a、b的内容,不用引入其他临时单元。采用下面的3个异或运算 式子就可以实现该功能:a=a^b b=b^a a=a^b 程序如下: #include "stdio.h" main() { int a,b; printf("请输入两个整数:"); scanf("%d%d",&a,&b); printf("交换前:a=%d,b=%d\n",a,b); a=a^b; b=b^a; a=a^b; printf("交换后:a=%d,b=%d\n",a,b); }

y位运算 History 【例10-14】取出一个整数从右端开始的5~9位,组成一个新数,并分别用八进制和十进制形式 输出。 #include "stdio.h" main() unsigned int a,b,c; scanf("%o"&a); b=a>5,/*二进制数的最低位是从0位开始计数的*/ c=b&0xlf printf"0 %dn%0 %dn"a,a,c,c)

位运算 【例10-14】取出一个整数a从右端开始的5~9位,组成一个新数,并分别用八进制和十进制形式 输出。 #include "stdio.h" main() { unsigned int a,b,c; scanf("%o",&a); b=a>>5; /*二进制数的最低位是从0位开始计数的*/ c=b&0x1f; printf("%o %d\n%o %d\n",a,a,c,c); }

共11页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档