河南师范大学c语言课件12 位运算.pptVIP

  • 6
  • 0
  • 约7.49千字
  • 约 22页
  • 2019-05-10 发布于广东
  • 举报
方法2: 更一般,易于推广到一般情况,且对16位或32位系统都有效,它实际上是将方法1第二步中按位与运算中的017用反运算表示。 要点是: 用反运算构造,一个高位为0,低4位为1的数。 a) 从0开始,0=0…0000 (可16位,也可32位) b ) 取反:~0=1…1111 (可16位,也可32位) c) 左移4位,使低4位为0: (~0)4 d) 取反即得所要求的数 ~((~0)4) 即:方法2: c=~((~0)4); b=a4; d=bc; ①右移4位,将所取位移至最低位: b=a4; ② 构造”与”运算的特殊数:低四位为1,其他为0: 017 ③ 做”与”运算取出最低4位: c=b017; 由前边的内容可以看到,有了按位运算就可以把一个字节中的n个位取出,修改或移动,这样就可以在一个字节中存放多个信息,即利用一个字节,存放多个不同的信息,这是编写系统软件所需要的,但运算麻烦。 而这一节所介绍的位段,是以位为单位定义长度的结构体中的成员,利用它可以方便的存取字节中的数位。 系统为包含位段的结构体变量data仍然分配4个字节,因为系统给变量分配内存仍然是按字节分配的。 此时产生的是溢出错误 ,系统将把所赋数6=(110)2的低位:(10)2=2赋给变量data.a. * *

文档评论(0)

1亿VIP精品文档

相关文档