NO17C语言程序设计(第十一章).pptVIP

  • 1
  • 0
  • 约1.68千字
  • 约 10页
  • 2018-02-08 发布于河南
  • 举报
NO17C语言程序设计(第十一章)

C语言程序设计 娄底师专计算机系 羊四清 * 第十七讲 第十一章 共用体与枚举类型 11.1 共用体与共用体变量 共用体结构:将几个不同类型的变量放到同一段内存单元中。即采用覆盖技术,几个变量互相覆盖,共同占用同一内存段。 共用体类型变量的定义: union 共用体名 如 union data { 成员 列表; { int i; …… char ch; }变量列表; floar f; } a,b,c; 整型变量i 字符ch 实型变量 f 其中3个成员变量占用内存同一起址,变量a,b,c各占4 个存储单元。 起址相同 共用体变量所占存储单元的长度==最长成员的长度 11.2 共用体变量的引用 共用体变量的引用:同结构体变量的引用,如上面的变量a,b,c,其引用方式为只能对其成员(分量)进行引用。 a.i 引用共用体变量a的整型分量i a.ch 引用共用体变量a的字符型分量ch a.f 引用共用体变量a的实型分量f 11.3 共用体变量的特点 1.共用体变量的多个成员不能同时访问,每次只有最后一次存放的成员才能被访问。 2.共用体变量和其和成员的地址相同。 3.不能对共用体变量赋初值。 4.函数参数和返回值不能为共用体变量,但可以定义指向共用体变量的指针。 5.共用体可以出现在结构体中,可定义共用体数组;反之亦可。 11.4 位运算与位段 10.4.1.1 位运算概述 C语言既具有高级评议的特点,又具有低级评议的功能,本章介绍的位运算和第9章介绍的指针运算很适合编写系统软件的需要。 位运算:指进行二进制位的运算。如将一个存储单元中的和二进制位左移或右移一位,二个数按位相加等。 一、字节和位 1个二 进位(bit)的值是0或1,8个二进位构成一个字节(byte),若干个字节组成一个存储单元称为字(word)。 计算机中数的表示方法:原码、反码、补码。 二、原码 只将最高位当作符号位(以0表示正数,1表示负数),其余各位代表数值本身的绝对值(以二进制表示)。 三、反码 若一个数是正数,则其反码与原码相同。 若一个数为负数,则符号位为1,其余各位对原码取反。 四、补码 若一个数是正数,则其补码与原码相同。 若一个数为负数,则符号位为1,其余各位对原码取反, 然后对整个数加1。11111000-700000111+7 补码 反码 原码 数值 §11.4.1.2 位运算符 右移 左移 按位异或 ^ 按位或 | 按位与 取反(单目运算) ~ 含义 运算符 C语言提供的位运算符如下表: 注:1)位运算符的运算是只能是整型或字符开数据,不能是实型数据。2)位运算符与赋值运算符结合可以组成扩展的赋值运算符。如=、|=、^=、=、= 11.4.1.3 位运算举例 例1:取一个整数a的从右端开始的4~7位。 15 87 43 0 15 43 0 1)先将a右移4位 (a=a4) 2)再与0000000000001111作运算 a=a0xf 例2:将一个整数a的循环右端n位。 n位 n位 1)先将a左移16-n位 (b=a(16-n) 2)再将a右移n位 (c=an)高位补0 3)再将c与b进行或运算(c=c|b) *

文档评论(0)

1亿VIP精品文档

相关文档