C语言-A位运算解读ppt课件_第1页
C语言-A位运算解读ppt课件_第2页
C语言-A位运算解读ppt课件_第3页
C语言-A位运算解读ppt课件_第4页
C语言-A位运算解读ppt课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、为了节省内存空间,许多标志状态通常被简单地组合并存储在系统软件的一个字节(或字)中。c语言是为系统软件的开发而设计的,所以她提供了一个位操作功能来把标志状态和标志字节分开。所谓的位操作是指由二进制位执行的操作。计算机中值的表示,1。二进制位和字节,2。值的原始代码表示,指使用最高位作为符号位(正数为0,负数为1),剩余位作为值本身绝对值的表示(以二进制形式表示)。为了简化描述,这种节省将使用1个字节来表示1个整数。计算机系统的内存由许多称为字节的单元组成,一个字节由8位组成,每个位的值是0/1。最右边的位称为“最低位”,编号为0。最左边的位称为“最高位”,从最低位到最高位依次编号。下图显示了1

2、字节的每个二进制位数。例如,符号位中的原始代码9是0001001 0表示正数-9的原始代码是10001001。符号位上的1代表负数3。一个值的反码在两种情况下代表一个值的反码:(1)正数的反码与原始码相同。例如,9的倒数是0000001001。(2)负数的逆码:符号位为1,其他位为该数绝对值的原码按位(1对0,0对1)进行逆码。例如-9的倒数:因为它是负的,所以符号位是“1”;剩余7位的绝对值为-9的原始代码0001001被位反转为1110110,因此-9的反转代码是11110110。数字的补码表示数字的补码也分为两类:(1)正数的补码与原码相同。例如,9的补码是0000001001。(2)负

3、数的补码:符号位为1,其他位为该数的绝对值的原始码,按位反转;然后在整数上加1。例如-9的补码:因为它是负的,所以符号位是“1”;剩余7位的绝对值为-9的原始代码0001001被逐位反转为1110110;再加一个,所以-9的补码是11110111。给定一个数的补码,寻找原始码的操作可以分为两种情况:(1)如果补码的符号位为“0”,则表示它是一个正数,因此补码是该数的原始码。(2)如果补码的符号位为“1”,表示一个负数,则查找原始码的操作可以如下:符号位不变,其余位反转,然后整数加1。例如,如果一个补码是11111001,那么原始代码是10000111(-7):因为符号位是“1”,这表示一个负数

4、,所以该位保持不变,仍然是“1”;剩余的7位1111001被反相为0000110;加1,等于10000111。5.计算机补码中数值的表示在计算机系统中,数值总是由补码表示(存储),因为通过使用补码,符号位和其它位可以被统一处理。同时,减法也可以被视为加法。此外,当由补码表示的两个数相加时,如果最高位(符号位)有进位,则进位被丢弃。嘿。6,11.2位操作、11.2.1位操作及其运算符1。按位and : printf( inputainetegernumber : );Scanf (%d , d , 11,程序操作:inputainegernumber :1000result=0x 3程序描述:(

5、0=2。不同长度数据之间的位操作低字节对齐,短数字的高字节由最高位补充:(1)有符号数中的无符号数和正数由0补充;(2)对于带符号数字中的负数,加1。14,11.3位段介绍,有时,存储1个信息不需要1个字节,仅1(或更多)位的二进制就足够了。如果结构类型仍然被使用,内存空间将被浪费。为此,C语言引入了位段类型。1.比特段的概念和定义所谓的比特段类型是一种特殊类型的结构。它的所有成员都用二进制位定义长度,并称之为位段。例如,中央处理器的状态寄存器由位段类型定义如下:/*符号标记*/unsignedzero:1。/*零标记*/unsignedcarry:1。/*进位标志*/unsigned算术:1

6、。/*奇偶校验/溢出标志*/unsigned half _ carry :1;/*半进位标志*/未指定的负数:1。/*减标志*/标志;15,显然,对于CPU的状态寄存器,使用位段类型(只有1字节)比使用结构类型(只有6字节)节省了5字节。2.描述(1)因为位段类型是结构类型,所以位段类型和位段变量的定义以及对位段(位段类型的成员)的引用与结构类型和结构变量相同。(2)在给段段赋值时,注意设置范围。一般来说,长度为n的比特段的取值范围是:0 2n-1。(3)使用长度为0的未知位段,可以从下一个字节开始存储后续位段。例如,structstatus 无符号sign:1/*符号标记*/unsignedzero:1。/*零标记*/unsignedcarry:1。/*进位标志*/unsigned:0。/*长度为0 *的未知段/未指定的数字:1;/*奇偶校验/溢出标志*/unsigned half _ carry :1;/*半进位标志*/未指定的负数:1。/*减标志*/标志;16,最初6个标志位连续存储在一个字节中。由于添加了长度为0的未知位段,因此从下一个字节开始存储以下三个位段,总共占用2个字节。(4)1比特段必须存储在1个存储单元(通常为1

温馨提示

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

评论

0/150

提交评论