2013-04-28 2 views
0

숫자의 이진 표현을 뒤집고 싶습니다.자바에서 이진수를 반전하려고 시도합니다.

프로그램의 메서드는 매개 변수 col을 통해 6 문자 16 진수 색 코드를받습니다. 이 값을 이진 값으로 변환해야합니다 (예 : 1111이 0000이면 amd). 그런 다음 모든 비트를 뒤집습니다. 이 새로운 값은 다시 16 진수로 변환되어야합니다. 이렇게하면 원래 색상 이미지의 색상 반전이 생성됩니다.

내 불완전 코드

,

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

문자열의 비트로 변환하는 이유는 무엇입니까? 그냥'color^= 0xFFFFFF'를할까요? – harold

+0

나는 여기에 많은 노력을 기울이지 않는다. 도움을 요청하기 전에 더 열심히 노력하는 것이 좋다. Javadoc for String과 Integer를 읽고 비트 연산자에 대해 읽어보십시오. –

+0

위의 답변을 harold 님이 이해하지 못했다면 http://www.c4learn.com/javaprogramming/bitwise-xor-bitwise-operators-in-java-programming/으로 이동하십시오. –

답변

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; 
} 
관련 문제