0

我想反转数字的二进制表示。

程序中的方法通过参数 col 接收 6 个字符的十六进制颜色代码。它应该将此值转换为其二进制对应值(例如,1111 变为 0000,反之亦然),然后翻转所有位。然后应将此新值转换回其十六进制等值。这将产生原始彩色图像的颜色反转。

我不完整的代码,

public String invertColor(String col)
    {
        String inverted = col;

        int i = Integer.parseInt(inverted, 16);
        String bin = Integer.toBinaryString(i);
        System.out.println(bin);

        return inverted;

}

有什么建议么?谢谢。

4

1 回答 1

6

您可以使用按位 NOT 运算符~来翻转您的位。以下方法演示了这一点:

public String invertColor(String col)
{
    String inverted = col;

    int i = Integer.parseInt(inverted, 16);
    i = ~i;
    inverted = Integer.toHexString(i);
    inverted = inverted.substring(2);
    return inverted;
}
于 2013-04-28T18:18:13.320 回答