C语言程序设计教程(第二版)课件第十二章.ppt

C语言程序设计教程(第二版)课件第十二章.ppt

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计教程(第二版)课件第十二章

第12章 位运算;12.1 二进制位运算概述 ;12.2 位的运算符;运算符;1. 位逻辑运算符 ;位逻辑运算符的应用: ;例如:unsigned a=3; a2的十进制值是: a1的十进制值是:;总结位运算符: (1) 位运算符中按位取反运算符的优先级最高,它比算术运算符,关系运算符,逻辑运算符和其他位运算符都高。 (2) 位运算符与赋值运算符相结合可以组成复合的赋值运算符。例如: = = = ^= (3) 如果两个类型长度不同的数进行位运算,则需要进行补位。如ab,b为int型,a为long型。系统将二者右端对齐并对较短的数b进行左补位,如果b为正数,则左侧16位补满0,如b为负数,左端应补满1;如果b为无符号整型数,则左侧补满0。 ;例: 设计一个函数,给出一个数的原码,得到该数的补码。;#includestdio.h main() {int a,get(int); printf(输入???个十六进制数:\n); scanf(%x,a); printf(\t它的补码是:%x\n,get(a));} get(int value) /*求一个数的补码*/ { int z; z=value0x8000; if(z= =0) z=value; /*符号位为0,为正数*/ else /*符号位为1,为负数*/ { z=~value+1; z=z+0x80000;} /*恢复符号位*/ return z; };三、 位运算符的优先级 (添加);12.3 位段 ;位段的引用: ;⑵允许在位段中定义无名字段,其含义为跳过该 字节剩余的位或指定的位不用。当无名字长度 为0时,跳过该字节剩余的位不用;当无名字段 长度为n时,跳过n位不用。 ;又如:struct packed_data { unsigned a : 2; unsigned b : 3; unsigned : 2; unsigned c : 4; int i; }data; ;12.4 小结

文档评论(0)

wuyoujun92 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档