我在“和竞争性的编程编辑”中找到了CPP数组的定义。
long long s1[1<<10][1<<10],s2[1<<10][1<<10]为什么它是这样写的,我们可以简单地写成
s1[1024][1024]有什么原因吗?
发布于 2022-02-14 11:30:26
常量位移位(如1u << N )通常是为了强调数字是2的n次方。
“幻数”((方案编制%29))应该避免,像1和10这样的小数字比大数字“不那么神奇”。我仍然建议使用一个命名常量来解释为什么专门使用10。
发布于 2022-02-14 11:25:53
1<<10是“位10被设置,所有其他位都是零”的缩写。您会发现这种构造通常围绕低级别代码,其中2或位的幂非常重要。
1<<10 == 0x400 == 010000000000
https://stackoverflow.com/questions/71110995
复制相似问题