繁体   English   中英

关注一段代码

[英]Concern regarding piece of code

我正在查看github上的一个开源项目,我在Java中找到了以下代码行,

static byte[] byteArray = new byte[1 << 11];

在这里我们知道1 << 11只不过是2048,所以我可以通过给出长度= 2048来直接初始化数组,如下所示,

static byte[] byteArray = new byte[2048];

那为什么它直接写成1 << 11而不是2048。

使用逐位操作的原因是要明确这是2的幂。我看到人们混淆常数。 例如8096,它是8192和4096的组合。

我更喜欢做的是使用<< 10<< 20表示KB和MB。 例如2 << 10 for 2 KB

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM