收藏 分享(赏)

C语言教程 位运算ppt课件.ppt

上传人:顺达 文档编号:3267978 上传时间:2020-12-18 格式:PPT 页数:17 大小:480KB
下载 相关 举报
C语言教程 位运算ppt课件.ppt_第1页
第1页 / 共17页
C语言教程 位运算ppt课件.ppt_第2页
第2页 / 共17页
C语言教程 位运算ppt课件.ppt_第3页
第3页 / 共17页
C语言教程 位运算ppt课件.ppt_第4页
第4页 / 共17页
C语言教程 位运算ppt课件.ppt_第5页
第5页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第八章 位运算 语言程序设计 1 本章主要内容 nC语言既是一种高级语言,广泛应用于应用软 件的开发和程序设计,同时又是一种低级语言 ,可以用于系统软件的开发和程序设计,如自 动控制系统中的过程控制、参数检测、数据通 讯等控制程序,都可以综合利用C语言中的指 针操作、位运算和位段技术来实现。 n本章介绍位运算的基本形式和常用运算符,并 简要介绍位段的概念。 2 一、位运算符和位运算 n位运算概述 所谓“位运算”,是指按二进制位进行运算。 位运算的特点:运算按二进制逐位进行没 有借位和进位。 位运算量:整型(int,short,unsiged,long)/字 符型(以补码/ASCII码形式存储)

2、,不可为实 型。 位运算符:P298 表12.1 printf(“Enter a and b:”); scanf(“%o,%o”, printf(“a 计算 00010000 (a) printf(“Enter a and b:”); scanf(“%o,%o”, printf(“a | b=%on”,a|b); Enter a and b: 20,30 a | b=30 Enter a and b: 12,20 a | b=32 计算 00010000 (a) | 00011000 (b) 00011000 00001010 (a) | 00010000 (b) 00011010 6 位运算

3、符的使用 n按位异或 (二者相异方为1) 【例三】以下程序的功能是将a数据的低4位取反。 #include main() unsigned char a=0 x39, b= ; a=ab; printf(%xn, a); 答案:0 x0f 计算 00111001 (a) 00001111 (b) 00110110 7 位运算符的使用 n按位取反 (各位反转) 【例四】 main( ) char a=3; int b=10; printf(“a=%d,b=%dn,a,b); 结果:a=-4,b=-11 计算 a: 补码: 11111100 原码: 10000100 b: 补码:11110101

4、原码:10001011 8 位运算符的使用 n左移运算 an 将a中各位向左移n位,右端补0,高位溢出丢弃。 例: a= an (可写为a=n),相当于a2n(高位未溢出时) 【例五】以下程序的运行结果是 。 main() unsigned int a=0 x3ef,b; b=a2; printf(%x,%xn,a,b); A)3ef,fb B) 3ef,fbc C) fbc,3ef D) fbc,fbc 结果:B 9 位运算符的使用 n左移运算 【例六】以下程序的运行结果是 。 main() int a=12,b; b=0 x1f5 printf(%d,%dn,a,b); 结果:12,96

5、计算 已知:0 x1f5为1 1111 0101 且:a为1100 a an 将a中各位右移n位,溢出则舍弃。 左端 a为正数时(符号位为0),填0; a为负数时(符号位为1),填0或填1与系统有关 填0(逻辑右移) 填1(算术右移) TC使用算术右移 11 位运算符的使用 n右移运算 【例七】以下程序的运行结果是 。 main() int a=9,b=-9; printf(%d,%d,a2,b2); 结果:2,-3 (-9的补码 :1111111111110111, 右移后为1111111111111101)。 12 应用示例 从整数a最右端 第m个位置开始 取该位开始右面 n位 。 算法如

6、下: b=a(m-n+1) c=(0n) d=b /*非位段*/ unsigned int a:3; /*占3位*/ unsigned int b:5; /*占5位*/ unsigned int :3; /*无名位段不可用*/ unsigned int c:2; /*占2位*/ unsigned int :0; /*到下一字节起始处*/ unsigned int d:3; /*占3位*/ unsigned int :0; /*到下一字节起始处*/ float f; /*非位段*/ ; 16 n引用: x.a x.b=1 x.d=7 n(注意:如果x.d=8,则将出现“溢出”使x.d=0 ) 17

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 应用文书 > PPT文档

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报