试图在java中反转二进制数

时间:2013-04-28 17:49:29

标签: java binary flip

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

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

我的代码不完整,

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;

}

有什么建议吗?感谢。

1 个答案:

答案 0 :(得分:4)

您可以使用按位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;
}