首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果两者都会给出相同的结果,我应该更喜欢加法或逻辑或运算符吗?

如果两者都会给出相同的结果,我应该更喜欢加法或逻辑或运算符吗?
EN

Stack Overflow用户
提问于 2012-09-28 21:18:06
回答 2查看 1K关注 0票数 1

如果结果相同,我应该选择+ (加法)运算符还是| (或)运算符?

我明白加法和逻辑或是不同的东西。但有时它们在某些宏中也会做同样的事情,特别是在处理字节和位时。在这种情况下我更喜欢哪一种?

示例:

代码语言:javascript
运行
复制
uint8_t Byte1 = 0x02;   // 0000 0010
uint8_t Byte2 = 0x80;   // 1000 0000
uint16_t Word1, Word2;  // 0000 0010 1000 0000 = 640 = 0x0280

Word1 = (Byte1 << 8) + Byte2;
Word2 = (Byte1 << 8) | Byte2;

std::cout << "Word1 = " << Word1 << std::endl;
std::cout << "Word2 = " << Word2 << std::endl;

输出:

Word1 =640个 Word2 =640个

EN

Stack Overflow用户

发布于 2012-09-28 21:25:48

我将避免在同一个表达式中混合位操作和算术操作,因此我将编写

代码语言:javascript
运行
复制
Word1 = (Byte1 * 256) + Byte2;

代码语言:javascript
运行
复制
Word2 = (Byte1 << 8) | Byte2;

这里唯一需要担心的是可读性,因为一个好的优化器应该为这两个表达式生成相同的代码。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12647501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档