C语言程序设计:第13章 位运算.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
![preview](https://dl-preview.csdnimg.cn/85653016/0001-6e6bd37d2070b84185be40f5b79da53e_thumbnail.jpeg)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
【位运算】是C语言中的一种重要操作,用于直接处理数据的二进制位,它在计算机底层操作和高效编程中发挥着关键作用。本章主要介绍了C语言中的位运算符,包括【按位与(&)】、【按位或(|)】、【按位异或(^)】、【按位取反(~)】、【左移(<<)】和【右移(>>)】。 1. **二进制位运算**: - **按位与(&)**:两个二进制数对应位同时为1时,结果位才为1,否则为0。 - **按位或(|)**:两个二进制数对应位中只要有一个为1,结果位就为1,全为0时为0。 - **按位异或(^)**:两个二进制数对应位相同时结果位为0,不同时结果位为1。 - **按位取反(~)**:对每一位取反,0变1,1变0。 - **左移(<<)**:将二进制数的所有位向左移动指定的位数,右边空出的位置用0填充。 - **右移(>>)**:将二进制数的所有位向右移动指定的位数,根据类型不同,左边空出的位置可能用0(逻辑右移)或符号位填充(算术右移)。 2. **位段**: 位段允许程序员访问和操作数据的特定位,这对于处理硬件寄存器或内存映射I/O特别有用。例如,通过位运算,可以从一个变量中提取或修改特定的位段。 3. **程序举例**: - 取出或判断数据中指定的位:可以使用按位与运算来检查或设置特定位。例如,`(x & 0x08)` 来判断`x`的第三位是否为1。 - 将数据中的指定位清零:通过按位与运算和特定的掩码(如 `x &= 0xff00`)可以清除变量`x`的低八位或高八位。 - 效率考虑:在某些条件下,位运算比逻辑运算更高效,例如 `if ((a==0) & (b==0))` 通常比 `if ((a==0) && (b==0))` 更快,因为前者在`a`不为0时不会继续评估`b`。 4. **负数的位运算**: 当位运算涉及到负数时,需要考虑到它们在计算机中的补码表示。负数的位运算会按照补码的规则进行,例如 `-13&21=17` 的计算。 5. **位运算在实际应用中的例子**: - 文件属性判断:在Windows API中,通过位运算可以判断文件的属性,如 `Win32_Find_Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY` 来判断文件是否为目录。 - 数据存储优化:在存储空间有限的情况下,位运算可以帮助高效地存储和检索信息,例如在位字段中表示多个状态或标志。 6. **整型数据位运算**: - 对于整型变量,位运算同样适用,例如清零或设置特定位,这在处理多字节整数的特定部分时非常有用。 通过熟练掌握这些位运算,C语言程序员能够更深入地控制程序的底层行为,实现高效的代码,并更好地理解计算机内部的运作机制。在编写涉及内存管理、硬件交互或优化性能的程序时,位运算是不可或缺的工具。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/octet-stream](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/release/download_crawler_static/85653016/bg1.jpg)
![](https://csdnimg.cn/release/download_crawler_static/85653016/bg2.jpg)
![](https://csdnimg.cn/release/download_crawler_static/85653016/bg3.jpg)
![](https://csdnimg.cn/release/download_crawler_static/85653016/bg4.jpg)
![](https://csdnimg.cn/release/download_crawler_static/85653016/bg5.jpg)
剩余36页未读,继续阅读
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/77de0adf71de4b419dfa799bbafeea65_wxg520cxl.jpg!1)
- 粉丝: 23
- 资源: 3万+
![benefits](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-1.c8e153b4.png)
![privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-2.ec46750a.png)
![article](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-3.fc5e5fb6.png)
![course-privilege](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-4.320a6894.png)
![rights](https://csdnimg.cn/release/downloadcmsfe/public/img/vip-rights-icon.fe0226a8.png)
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)