Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于字节数组构建位向量-了解位操作_Java_Bit Manipulation_Bit - Fatal编程技术网

Java 基于字节数组构建位向量-了解位操作

Java 基于字节数组构建位向量-了解位操作,java,bit-manipulation,bit,Java,Bit Manipulation,Bit,我正在读一段代码,其中应该使用字节数组实现位向量。 其思想是,如果相应位置存在数字,则位向量具有位集。 例如,如果存在数字10,则必须设置位10等。这是一个经典概念,我理解,但我不确定实际实现 我不明白的是: 位向量[num/8]|=110%8=2,因此110%8=2,因此1您几乎是对的:此代码设置第二个字节的第三位。10/8==1,10%8==2。所有参数都是1,因此10表示位号11,1表示第二个字节,因此设置第二个字节的第三位对于参数10是正确的。您几乎是对的:此代码设置第二个字节的第三位。

我正在读一段代码,其中应该使用字节数组实现位向量。 其思想是,如果相应位置存在数字,则位向量具有位集。 例如,如果存在数字10,则必须设置位10等。这是一个经典概念,我理解,但我不确定实际实现

我不明白的是:
位向量[num/8]|=110%8=2,因此110%8=2,因此1您几乎是对的:此代码设置第二个字节的第三位。10/8==1,10%8==2。所有参数都是1,因此10表示位号11,1表示第二个字节,因此设置第二个字节的第三位对于参数10是正确的。

您几乎是对的:此代码设置第二个字节的第三位。10/8==1,10%8==2。所有参数都是1,因此10表示位号11,1表示第二个字节,因此设置第二个字节的第三位对于参数10是正确的。

如果第一位是最低有效位,则设置正确。这是定义它的有效方法。我假设您认为第一位是最重要的位,在这种情况下,您需要移位7-num%8。您也可以这样做。

如果第一位是最低有效位,则会这样做。这是定义它的有效方法。我假设您认为第一位是最重要的位,在这种情况下,您需要移位7-num%8。你也可以这样做。

为什么不打印出1@OliCharlesworth:现在我觉得自己像个白痴。我太激动了,认为这样做是不对的。为什么不打印出1@OliCharlesworth:现在我觉得自己像个白痴。我太激动了,认为这样做是不对的。实际上,这是第三位。罗伯特,这是第二位基于0的计算,从0号开始。说真的,谁会那样说话?这是右手边的第三位。如果你想在对话中使用以零为基础的表示法,你应该说第二位。我现在明白了。我想是第十位,实际的10位,你从左到右排列。前8位和第二个字节中的第10位是从左开始的。但它是相反的。实际上,它是第三位。罗伯特,这是第二位基于0的计算,从第0位开始。说真的,谁会这样说?这是右手边的第三位。如果你想在对话中使用以零为基础的表示法,你应该说第二位。我现在明白了。我想是第十位,实际的10位,你从左到右排列。前8位和第二个字节中的第10位是从左开始的。但它是相反的。我现在明白了。我认为是第10位,实际的10位是从左到右的。前8位和第二个字节中的第10位是从左开始的。但它是相反的。我现在明白了。我认为是第10位,实际的10位是从左到右的。前8位和第二个字节中的第10位是从左开始的。但它是相反的。
7 -> 7 % 8 = 7, byte[0], Bit 7 (1 << 7).
8 -> 8 % 8 = 0, byte[1], Bit 0 (1 << 0).
9 -> 9 % 8 = 1, byte[1], Bit 1 (1 << 1).
10 -> 10 % 8 = 2, byte[1], Bit 2 (1 << 2).