知道这些位,创建一个新的int / char

时间:2013-07-20 20:34:00

标签: java byte bit

我正在尝试制作一个新的字符/整数。我所知道的那个char / int只是前6位。我有一个名为

的变量
number

这是一个非常大的数字,它由24位组成。有了这个数字,我想使用toBinaryString方法

bits = Integer.toBinaryString(number);

所以现在我有一个变量包含来自变量号的位。此时我想把这个字符串分成4个,所以我留下了4个,6个字符的字符串,它代表我的整数/字符的位。我如何知道这些位来创建数字或角色?

为了确保我在每个细节中解释它,让我举个例子:

我有

number = "abc" // 011000010110001001100011 as binary representation

现在我想创建一个前6位(011000)的新整数。另一个带有以下6位(010110)的整数,依此类推......

1 个答案:

答案 0 :(得分:4)

为什么要将它作为字符串?听起来你真的只想要进行位移操作:

number = ...;

int bottomBits = number & 0x3f;
int middleBits = (number >>> 6) & 0x3f;
int upperBits = (number >>> 12) & 0x3f;

所以bottomBits最不重要的 6位,然后是middleBits,然后是upperBits(最高有效位,所以前6位)你的二进制字符串)。