3
ทำไมโอเปอเรเตอร์ NOT แบบลอจิคัลในภาษา C-style“!” และไม่ใช่“ ~~”?
สำหรับตัวดำเนินการไบนารีเรามีตัวดำเนินการทั้งสองบิตและตรรกะ: & bitwise AND | bitwise OR && logical AND || logical OR ไม่ใช่ (โอเปอเรเตอร์ unary) ทำงานแตกต่างกัน มี ~ สำหรับ bitwise และ! สำหรับตรรกะ ฉันจำไม่ได้ว่าเป็นการดำเนินการที่ไม่เป็นเอกเทศเมื่อเทียบกับ AND และหรือ แต่ฉันไม่สามารถคิดได้ว่าทำไมนักออกแบบเลือกที่จะเบี่ยงเบนจากหลักการที่ว่าซิงเกิลเป็น bitwise และ Double นั้นมีเหตุผลที่นี่และเปลี่ยนไปใช้ตัวละครอื่นแทน ฉันเดาว่าคุณสามารถอ่านมันผิดเช่นการดำเนินการสองบิตที่จะคืนค่าตัวถูกดำเนินการ แต่นั่นไม่ได้เป็นปัญหาที่แท้จริงสำหรับฉัน มีเหตุผลที่ฉันขาดหายไปหรือไม่?