【发布时间】:2015-10-02 18:36:37
【问题描述】:
到目前为止,我有这段代码可以创建 16 位掩码。但是我不知道如何使用这种方法创建一个 32 位掩码。有任何想法吗?
编辑:我想创建 32 个 32 位的掩码,每个掩码的相应位为 1,其余位为零。例如:掩码 1 的最左边位为 1,其余位为零,掩码 2 的最左边第 2 位为 1,其余位为零。我不知道如何更简洁地解释,但我希望你们能明白……
mask = new int[16];
mask[0] = 0x8000;
mask[1] = 0x4000;
mask[2] = 0x2000;
mask[3] = 0x1000;
mask[4] = 0x0800;
mask[5] = 0x0400;
mask[6] = 0x0200;
mask[7] = 0x0100;
mask[8] = 0x0080;
mask[9] = 0x0040;
mask[10] = 0x0020;
mask[11] = 0x0010;
mask[12] = 0x0008;
mask[13] = 0x0004;
mask[14] = 0x0002;
mask[15] = 0x0001
【问题讨论】:
-
你为什么不用一个简单的循环来初始化它呢?为什么不能将此方法扩展到两倍的位数?为什么需要这样的 32 位位掩码——这里更大的目标是什么?
-
从技术上讲,你已经这样做了......
-
抱歉问题不清楚,我编辑了。
-
@uohzxela:它仍然没有解释你在简单地将当前方法扩展到两倍位数时遇到了什么问题。
标签: java bit-manipulation bit