我正在尝试制作一个新的字符/整数。我所知道的那个char / int只是前6位。我有一个名为
的变量number
这是一个非常大的数字,它由24位组成。有了这个数字,我想使用toBinaryString方法
bits = Integer.toBinaryString(number);
所以现在我有一个变量位包含来自变量号的位。此时我想把这个字符串分成4个,所以我留下了4个,6个字符的字符串,它代表我的整数/字符的位。我如何知道这些位来创建数字或角色?
为了确保我在每个细节中解释它,让我举个例子:
我有
number = "abc" // 011000010110001001100011 as binary representation
现在我想创建一个前6位(011000)的新整数。另一个带有以下6位(010110)的整数,依此类推......
答案 0 :(得分:4)
为什么要将它作为字符串?听起来你真的只想要进行位移操作:
number = ...;
int bottomBits = number & 0x3f;
int middleBits = (number >>> 6) & 0x3f;
int upperBits = (number >>> 12) & 0x3f;
所以bottomBits
是最不重要的 6位,然后是middleBits
,然后是upperBits
(最高有效位,所以前6位)你的二进制字符串)。