- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 尚辅网 第11章 位运算 11.1位运算的基本概念 由于C语言是为研发系统软件而设计的,为此它提供了类似于汇编语言的一些功能,可实现将标志状态从标志字节中分离出来的位运算功能。正是因为C语言的这种作为高级语言,又具有低级语言的的功能,使得它的应用非常广泛。 所谓位运算是指,按二进制位进行的运算。为了节省内存空间,在系统软件中常将多个标志状态简单地组合在一起,存储到一个字节(或字)中。这也正是在系统软件中常常需要处理二进制问题的原因。 11.1.1 运算符及其位运算 1.运算符 C语言提供的位运算符见表11-1 2.位运算 (1)按位与() 格式:xy 规则:参加运算的两个操作数,按位进行与运算,若对应的二进制位均为1时,该位运算的结果为1,否则该位为0。 主要用途:取(或保留)1个数的某(些)位,其余各位置0。 例如:取的后4位,其余各位置0。 方法: 构造一个数它的后4位是1)行按位与()运算。 ) ──────── (2)按位或(|) 格式:x|y 规则:对应位均为0时才为0,否则为1 主要用途:将1个数的某(些)位置1,其余各位不变。 例如:最后2为置1,其余各位不变。 方法: 构造一个二进制数0000011(它的后2位是1)行按位或(|)。 |) ──────── (3)位异或(^) 格式:x^y 规则:对应位相同时为0,相异时为1。 主要用途:使1个数的某(些)位翻转(即原来为1的位变为0,为0的变为1),其余各位不变。 例如:的后4位翻转,其余各位不变。 方法: 构造一个它的后4位是1)行位异或(^)运算。 ^) ────────(4)按位取反──~ 格式:~x 规则:各位翻转,即原来为1的位变成0,原来为0的位变成1。 主要用途:间接地构造一个数,以增强程序的可移植性。 例如,~0000101~) ──────── (5)按位左移── 格式:x 位数 规则:使操作数的各位左移,低位补0,高位溢出 例如,52=20 )──────── (6)按位右移── 格式:x位数 规则:使操作数的各位右移,移出的低位舍弃;高位: 82=2 )──────── ①对无符号数和有符号中的正数,补0; ②有符号数中的负数,取决于所使用的系统:补0的称为“逻辑右移”,补1的称为“算术右移”。 说明: (1)操作数和运算所需要的参数,如“位数”等,都必须是整型或字符型数据。除按位取反为单目运算符外,其余均为双目运算符。 (2)参与运算时的操作数都必须首先转换成二进制形式,然后再执行相应的按位运算。 例如,52=20:0000101 →20 2=5→ 11.2.2 位运算举例 [例题11.1] 输入一个正整数赋给int型变量i,然后从该变量的右端(最低位)开始的第3位起连续取4位输出。(即输出第3~6位构成的数,从最低位为0号编号) 解题思路: (1)先将变量i右移3位,将3~6位移到低4位上。即:i3。 (2)产生1个低4位为1、其余各位为0的整数r。可用以下式子实现: r=~(~04) 上式的运算步骤如下: 000000000 ~011111111 ~0411110000 ~(~04)00001111 (3)用r与i3的结果进行按位与运算。 /*例题原代码文件名:LX11_1.C*/ main() { int i, r; printf(“Please input a int number: ”); scanf(“%d”,,i); i=3; /*右移3位,将3~6位移至低4位*/ r = ~(~04)
您可能关注的文档
- C语言程序设计(第二版)电子教案任正云 第5章循环结构.ppt
- C语言程序设计(第二版)电子教案任正云 第6章 函数.ppt
- C语言程序设计(第二版)电子教案任正云 第7章数组.ppt
- C语言程序设计(第二版)电子教案任正云 第8章 指针.ppt
- C语言程序设计(第二版)电子教案任正云 第9章结构体和共用体.ppt
- C语言程序设计(第二版)电子教案任正云 第10章文件.ppt
- C语言程序设计(第二版)电子教案王伟 第1章.ppt
- C语言程序设计(第二版)电子教案王伟 第2章.ppt
- C语言程序设计(第二版)电子教案王伟 第3章.ppt
- C语言程序设计(第二版)电子教案王伟 第4章.ppt
- c语言程序设计(徐贞如) 第12章 文件.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 C语言入门.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 函数.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 函数复习5.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 计算机基础知识.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 结构化实例7.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 结构体6.1.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 控制.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 算法初步.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 文件6.3.ppt
最近下载
- Beetl2.9 中文文档(学习JAVA知识资料).pdf VIP
- 浙科版2023版综合实践活动一年级上册《快乐的小农夫》教学设计.docx VIP
- 市场营销策划教学教案.pdf VIP
- 周末安全教育教育主题班会 35张幻灯片.pptx VIP
- 20S515钢筋混凝土及砖砌排水检查井.pptx VIP
- 2025年上海中考复习必背英语考纲词汇表默写(汉英互译).docx VIP
- C语言串讲笔记.pdf VIP
- 2025年上海高考英语复习必背考纲词汇手册默写.pdf VIP
- 浙科版2023版综合实践活动一年级上册《小小售货员》教学设计.docx VIP
- 2025年地震安全法规与减灾常识测试题库及解答集锦.pdf VIP
文档评论(0)