내 머리 꼭대기에서 논리적 배타적 또는 연산자를 사용하는 단일 언어를 생각할 수는 없지만 논리와 비트가 모두 and
및 or
인 연산자가 있습니다.왜 많은 언어에 논리 XOR 연산자가 부족합니까?
주위를 둘러 보니 내가 찾을 수있는 유일한 이유는 독점적이거나 단락 될 수 없었기 때문에 논리적 버전은 쓸모가 없었습니다. 사실은 그렇지 않습니다. 그 이유는 대부분의 언어가 부족하다는 것이 었습니다. (루비를 사용했기 때문에 정수를 부울로 변환 한 다음 비트마다 XOR을 사용했습니다. 부울은 논리 XOR과 같은 역할을합니다) .
그냥 비트 연산을 사용하면 XOR이 작동하지 않습니다. 다른 결과를 나타 내기 때문입니다.
0b0001^0b1000 = 0b1001 (True)
0b0001 XOR 0b1000 = False
// Where^is bitwise exclusive or and XOR is logical exclusive or
// Using != (not equal to) also doesn't work
0b0001 != 0b1000 = True
왜 대부분의 언어에는 논리 배타적 논리합이나 연산자가 포함되어 있지 않습니까?
편집가 : 당신이 알고 있다면 내가하고 싶은 일을하지 않는 방법 !=
도에 예를 추가, 거의 않지만, 전용 비트를 사용하거나 수행하는 같은 문제에 빠지고, 만 작동 다른 번호가 아닌 0 또는 1로 작업하고 있습니다.
참고로, 언어는 0을 거짓으로, 0이 아닌 값을 true로 가정합니다.
두 번째 예에서는 true가 아닌 값을 사용하는 언어를 사용합니다. – caskey
논리 XOR과 같지 않음이 어떻게 다른지 예를 들려 줄 수 있습니까? –
* 실제 * 여기에 "논리 연산자를 논리 값이 아닌 값으로 사용하려고하는 이유는 무엇입니까?" 이것은 의미 론적으로 무효하고 프로그래밍에 익숙하지 않습니다. – RBarryYoung