博客
关于我
C++/C (&~)运算和(&)运算
阅读量:642 次
发布时间:2019-03-14

本文共 752 字,大约阅读时间需要 2 分钟。

关于运算符的使用例子

在学习编程时,遇到两个常用运算符的应用,一经然想到要实际操作去理解它们的用法。下面以C语言为例,通过一个简单的程序展示两个运算符的功能特性。

int main(){     int m = 200; // 定义一个整数变量m,值为200    int n = 64;  // 定义一个整数变量n,值为64    int l = m & (n - 1); // 计算m除以n的余数。这个运算符其实就是对m取模n    int o = m & ~(n - 1); // 计算m向n的倍数逼近,最接近的一个结果。这个运算符用于找到最接近的多倍数。    cout << "m除以n的余数为" << l << endl; // 输出计算结果    cout << "m向n的倍数逼近,最近的是" << o << endl; // 输出另一个计算结果    getchar(); // 等待用户输入    return 0;  // 程序结束}

运算符的实际表现

通过上述代码可以很直观地看到两个运算符的作用。第一个运算符m & (n - 1)实际上是计算m除以n的余数,它是一个常见的取模运算,可以直接用于求余数计算。这一点在数学编程中非常实用,尤其是在处理周期性问题时会被广泛使用。

第二个运算符m & ~(n - 1)看似复杂,但实际上它是一种寻找最接近n倍数的方法。这种方法通过位操作来确定哪一个倍数最接近给定值m,可以避免浮点运算带来的精度问题。在实际应用中,这种方法在频繁进行倍数计算或者希望避免浮点运算的场景下非常有用。

结合这两个运算符的例子,可以看出,底层的位运算语言能力在编程中同样不可小觑。虽然没有循环或条件语句的复杂性,但这些位运算往往在算法的核心部分发挥着重要作用。

转载地址:http://qiwlz.baihongyu.com/

你可能感兴趣的文章
org.tinygroup.serviceprocessor-服务处理器
查看>>
org/eclipse/jetty/server/Connector : Unsupported major.minor version 52.0
查看>>
org/hibernate/validator/internal/engine
查看>>
Orleans框架------基于Actor模型生成分布式Id
查看>>
SQL-36 创建一个actor_name表,将actor表中的所有first_name以及last_name导入改表。
查看>>
ORM sqlachemy学习
查看>>
Ormlite数据库
查看>>
orm总结
查看>>
ORM框架 和 面向对象编程
查看>>
OS X Yosemite中VMware Fusion实验环境的虚拟机文件位置备忘
查看>>
os.environ 没有设置环境变量
查看>>
os.path.join、dirname、splitext、split、makedirs、getcwd、listdir、sep等的用法
查看>>
os.removexattr 的 Python 文档——‘*‘(星号)参数是什么意思?
查看>>
os.system 在 Python 中不起作用
查看>>
OS2ATC2017:阿里研究员林昊畅谈操作系统创新与挑战
查看>>
OSCACHE介绍
查看>>
SQL--合计函数(Aggregate functions):avg,count,first,last,max,min,sum
查看>>
OSChina 周五乱弹 ——吹牛扯淡的耽误你们学习进步了
查看>>
SQL--mysql索引
查看>>
OSChina 周四乱弹 ——程序员为啥要买苹果手机啊?
查看>>