Java 使用xor从像素中分离颜色
我正在做普林斯顿挑战赛,我在下一页遇到了一条我不明白的线,这条线就在第一张管道图片的下方 对于每个像素(x,y),按照(0,0),(0,1),(0,2),…)的顺序,提取颜色的红色、绿色和蓝色分量(每个分量是介于0和255之间的整数) 然后,用8个新生成的位对红色分量进行异或运算。对绿色(使用另外8个新生成的位)和最后的蓝色执行相同的操作 使用xor操作的结果创建新颜色,并将像素设置为该颜色 我不太确定如何在3次异或操作后创建新颜色,因为异或操作只会产生真值或假值。不,您将8位颜色分量值与另一个8位值进行异或,如下所示:Java 使用xor从像素中分离颜色,java,colors,xor,Java,Colors,Xor,我正在做普林斯顿挑战赛,我在下一页遇到了一条我不明白的线,这条线就在第一张管道图片的下方 对于每个像素(x,y),按照(0,0),(0,1),(0,2),…)的顺序,提取颜色的红色、绿色和蓝色分量(每个分量是介于0和255之间的整数) 然后,用8个新生成的位对红色分量进行异或运算。对绿色(使用另外8个新生成的位)和最后的蓝色执行相同的操作 使用xor操作的结果创建新颜色,并将像素设置为该颜色 我不太确定如何在3次异或操作后创建新颜色,因为异或操作只会产生真值或假值。不,您将8位颜色分量值与另一个
1010 1010
xor 1111 0000
---- ----
0101 1010
当单个异或运算在两位上产生另一位时,对多位值进行该运算意味着依次对每一位进行该运算
另请参见。布尔(逻辑)运算中的异或仅返回true或false,但也可以使用按位异或。在这种情况下,数字中的每一位(本例中为8位值)都被视为布尔值。这将导致8个新位为真或假,从而返回一个新的8位值。其中三个组合将得到一个rgb值。我认为是按位异或,将颜色转换为二进制,然后对每个数字进行异或运算,得到结果。例如000011111或11111111=11110000 因为异或运算只会产生真值或假值 你的陈述是不真实的。例如: 1110异或1001=0111 有关更多信息,请参阅: 我不太确定一种新的颜色怎么能 在3次异或操作后创建, 因为xor操作只会 产生正确或错误的值 在这种情况下,异或逐位操作。结果是1或0,但对于每一位 1111111异或 10101010=
0101 0101作业所指的是。谢谢!现在这就更有意义了。