English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

java에서의 이진 연산 문제 코드 해석

java의 비트 연산자 중 하나인 배제 연산자는 심볼 (^)로 표시되며, 연산 규칙은 다음과 같습니다: 두 연산자의 비트 중 일치하면 결과가 0이고, 다를 때 결과가 됩니다.1예를 들어:

public class TestXOR{
	public static void main(String[] args){
		int i = 15, j = 2;
		System.out.println("i ^ j = " + (i ^ j));
	}
}

실행 결과는: i^j=13.

위의 프로그램을 분석하면, i=15로 변환하면1111j=2로 변환하면 0010이며, XOR 연산의 규칙에 따라1101를 십진수로 변환하면13.

이 규칙을 활용하여 특정 알고리즘에 유연하게 적용할 수 있습니다. 예를 들어, 주어진2K+1개수가 있으며, 중에서2k개의 동일한, 다른 수를 찾아야 합니다. 예를 들어:2、3、4、4、3、5、6、6、5우리는 XOR 연산자를 사용하여 이렇게 작성할 수 있습니다:

public class TestXOR{
	public static void main(String[] args){
		int[] array = {2,3,4,4,3,5,6,6,5};
		int v = 0;
		for (int i = 0; i < array.length; i++) {
			v ^= array[i];
		}
		System.out.println("한 번만 나타나는 수는:\ + v);
	}
}

결과는: 한 번만 나타나는 수는2.

우리는 XOR 연산자의 규칙을 잘 활용하여, 한 수와 0을 XOR 연산하면 그 수 자체가 되고, 한 수와 자기 자신을 XOR 연산하면 0이 되는 원리를 이해합니다.

위의 계산 방식:v=2^3^4^4^3^5^6^6^5;

교환 법칙 및 위의 규칙에 따라

한 번만 나타나는 수를 추출할 수 있습니다. (조건을 충족해야 합니다)2k개의 동일한)

요약

이제 본 문서에서 java의 XOR 문제에 대한 코드 분석의 모든 내용을 제공했습니다. 많은 도움이 되었기를 바랍니다. 관심이 있는 분들은 이 웹사이트의 다른 관련 주제를 참조할 수 있으며, 부족한 점이 있으면 의견을 주시기 바랍니다. 많은 친구들이 이 웹사이트를 지지해 주셔서 감사합니다!

명시: 본 문서의 내용은 인터넷에서 가져왔으며, 원저자가 모두 소유하고 있으며, 인터넷 사용자가 자발적으로 기여하고 업로드한 내용이며, 이 웹사이트는 소유권을 가지지 않으며, 인공 편집되지 않았으며, 관련 법적 책임을 부담하지 않습니다. 저작권 침해가 의심되는 내용이 있을 경우, notice#w로 이메일을 보내 주시기 바랍니다.3codebox.com(보고할 때는 #을 @으로 변경하십시오.)를 통해 신고하시고 관련 증거를 제공하시면, 사실이 확인되면 해당 도메인의 유죄 내용을 즉시 제거할 것입니다.

좋아할 것 같은