首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >左移算子cpp

左移算子cpp
EN

Stack Overflow用户
提问于 2022-02-14 11:19:09
回答 2查看 78关注 0票数 -4

我在“和竞争性的编程编辑”中找到了CPP数组的定义。

代码语言:javascript
复制
long long s1[1<<10][1<<10],s2[1<<10][1<<10]

为什么它是这样写的,我们可以简单地写成

代码语言:javascript
复制
 s1[1024][1024]

有什么原因吗?

EN

回答 2

Stack Overflow用户

发布于 2022-02-14 11:30:26

常量位移位(如1u << N )通常是为了强调数字是2的n次方。

“幻数”((方案编制%29))应该避免,像1和10这样的小数字比大数字“不那么神奇”。我仍然建议使用一个命名常量来解释为什么专门使用10。

票数 5
EN

Stack Overflow用户

发布于 2022-02-14 11:25:53

1<<10是“位10被设置,所有其他位都是零”的缩写。您会发现这种构造通常围绕低级别代码,其中2或位的幂非常重要。

1<<10 == 0x400 == 010000000000

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

https://stackoverflow.com/questions/71110995

复制
相关文章

相似问题

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