Tắt đầu của tôi, tôi không thể nghĩ ra một ngôn ngữ mà tôi đã sử dụng có một toán tử logic hoặc độc quyền, nhưng tất cả đều có các toán tử logic và bitwise and
và or
.Tại sao nhiều ngôn ngữ thiếu một toán tử XOR logic?
Nhìn xung quanh, lý do duy nhất mà tôi có thể tìm thấy là độc quyền hoặc không thể bị đoản mạch, vì vậy một phiên bản hợp lý sẽ vô ích, điều mà tôi thực sự không thể thấy được. Lý do tôi nhận thấy rằng hầu hết các ngôn ngữ thiếu điều này là tôi cần nó (tôi đã sử dụng Ruby, vì vậy tôi đã viết một phương pháp để chuyển đổi một số nguyên thành boolean, và sau đó sử dụng XOR bitwise, trên booleans hoạt động như XOR logic) .
Chỉ cần sử dụng bitwise XOR không hoạt động, vì nó sẽ cho kết quả khác.
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
Vậy tại sao hầu hết các ngôn ngữ không bao gồm toán tử hoặc toán tử logic?
Sửa: Tôi thêm một ví dụ với cách !=
cũng không làm những gì tôi muốn, nó hầu như không có gì, nhưng rơi vào cùng vấn đề rằng việc sử dụng Bitwise độc quyền hay không, nó chỉ hoạt động nếu bạn biết rằng bạn đang làm việc với số không hoặc một và không phải bất kỳ số nào khác.
Và để lưu ý, điều này giả định rằng ngôn ngữ sử dụng 0 là sai và không phải là đúng.
Trong ví dụ thứ hai của bạn, nó giả định một ngôn ngữ sử dụng khác không đúng. – caskey
Bạn có thể đưa ra một ví dụ về cách XOR hợp lý của bạn khác nhau không? –
* real * ở đây là "Tại sao bạn lại cố gắng sử dụng các toán tử logic trên các giá trị phi boolean?" Đó là thực hành lập trình không hợp lệ và không hợp lý để bắt đầu. – RBarryYoung