C语言程序设计教程(第2版)课件第12章.ppt_第1页
C语言程序设计教程(第2版)课件第12章.ppt_第2页
C语言程序设计教程(第2版)课件第12章.ppt_第3页
C语言程序设计教程(第2版)课件第12章.ppt_第4页
C语言程序设计教程(第2版)课件第12章.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第12章 位运算 本章要点 位运算符和位的逻辑运算 位的复合运算 位段的概念与运用 本章难点 对位段的理解 12.1 二进制位运算概述 1. 位(bit):是指二进制中的位,它是计算机能 处理的最小单位。 2. 字节(byte):是计算机处理的基本单位。计算 机的内存是按字节进行分配的。一个字 节有八位二进制数组成。所以我们在C语 言中数据类型都是以字节为基本单元。 3. 补码:一个正数的补码是其本身;一个负数的 补码是其绝对值按位取反后加1。计算 机是以补码的形式存放数的。 例如:-7 的补码是 1111 1111 1111 1001 12.2 位的运算符 一、位运算的概念 位运算:以二进制位为单位的运算。 二、位运算符 “位运算”仅 限于整数(整型数和字符型) 。 位逻辑运算符(、 a=0x9d; b=0xa5; printf(“a: %xn”, a); printf(“a printf(“a | b: %xn”,a | b); printf(“ab: %xn”,ab); 输出结果: a: a a1的十进制值是: 12 1 3位复合赋值运算符 由位运算符与赋值运算符组成。 若z等于0,则a为正数;若为非0,则a为负数。 (2) 如果z非0,有z=a+1+0x80000;否则z=a。 (3) 返回z。 程序如下: #include main() int a,get(int); printf(“输入一个十六进制数:n“); scanf(“%x“, printf(“t它的补码是:%xn“,get(a); get(int value) /*求一个数的补码*/ int z; z=value if(z= =0) z=value; /*符号位为0,为正数*/ else /*符号位为1,为负数*/ z=value+1; z=z+0x80000; /*恢复符号位*/ return z; 运行结果为: 输入一个十六进制数 : 4e5 它的补码是:4e5 三、 位运算符的优先级 (添加) 位运算符自身的优先级为(从高到低) : 、()、 printf(“%on”,a&b”)。右移运算符的运算规则是:将运算对象中的每个二 进制位向右移若干位,从右边移出的低位部分被舍弃。对无符号的数来 说,左边空出的部分补0;对有符号数来说,如果符号位为0。则空出的 高位部分补0,对于有符号数中的负数,取决于所使用的系统:补0的称 为“逻辑右移”,补1的称为“算术右移”。 (7)所谓位段就是将一个机器字分成几段,以占用二进制位的数目来管理数 据,它常常是用来表示和处理不需要整字节存储的信息,这样的信息可 能是3位,也可能是9位甚至是它们的组合。位段类型也称为数据结 构体类型,因此其类型定义的方法和结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论