정수가 있고 0에서 1 또는 1에서 0으로 1 비트를 전환하고 싶습니다. 상태를 알 수 없습니다. 1 개의 성명서에서 어떻게합니까? 피 & | ~ ^
정수에서 비트를 전환하는 방법은 무엇입니까?
if else
(추가 가산기)
정수가 있고 0에서 1 또는 1에서 0으로 1 비트를 전환하고 싶습니다. 상태를 알 수 없습니다. 1 개의 성명서에서 어떻게합니까? 피 & | ~ ^
정수에서 비트를 전환하는 방법은 무엇입니까?
if else
(추가 가산기)
비트 설정 비트 OR 연산자 (|)를 사용하여 비트를 설정하십시오.
number |= 1 << x;
그러면 비트 x가 설정됩니다.
비트를 지우려면 비트 AND 연산자 (&)를 사용하여 비트를 지우십시오.
number &= ~(1 << x);
그러면 비트 x가 지워집니다. 비트 NOT 연산자 (~)로 비트 문자열을 반전 한 다음 AND로 반올림해야합니다.
비트를 토글
The XOR operator (^) can be used to toggle a bit.
수^= 1 < < X;
조금 뒤집으려면 입력 한 숫자를 다른 숫자와 XOR 할 수 있습니다. Java based example :
int a = 0b1001;
System.out.println(Integer.toBinaryString(a));
a = a^0b0100; // flip third LSB
System.out.println(Integer.toBinaryString(a));
a = a^0b0100; // flip it back
System.out.println(Integer.toBinaryString(a));
XOR은 당신이 언급 허용 된 사업자 중 하나가 아닌,하지만 can be defined in terms of them(example) :
int xor(int p, int q) {
return (p & ~q) | (~p & q);
}
이 (필요에 따라이 식을 인라인.)
이 읽기 숙제를 좋아해. – travis
@travis 그다지 가치가 없다. (비록 "너무 지역화 된"이네 제한을 고려해 적용됩니다.) – millimoose