मुझे पता है कि शब्द और शब्द बाइनरी and
परिभाषित करता है ... लेकिन तार्किक and
परिभाषित करता है?तार्किक और फर्थ में?
उत्तर
वही शब्द, AND
, लॉजिकल और के लिए भी उपयोग किया जाता है। लेकिन AND
पर दो इनपुट मान अच्छी तरह से गठित झंडे होने की अनुशंसा की जाती है; सच और झूठी दो मानों द्वारा दर्शाए जाते हैं, सभी सेट (-1) बिट्स और सभी अनसेट (0) बिट्स। इनके अलावा अन्य मूल्य सत्य के रूप में काम कर सकते हैं (सी में), लेकिन सूक्ष्म त्रुटियों का कारण बन सकता है।
सभी तुलना ऑपरेटर अच्छी तरह से गठित झंडे लौटते हैं, लेकिन उदाहरण के लिए -
नहीं है। निम्नलिखित झूठे (0) का मूल्यांकन करता है।
7 5 - 7 3 - AND
AND
(के रूप में यह बिटवाइज़ और करता है) हो जाता है बिट पैटर्न 100 और 010. परिणाम 0 है।
संदर्भ:
- Bit Manipulations in Forth, का हिस्सा बिट द्वारा बिट आगे सीखना।
- Chapter 4 में में "ए लिटिल लॉजिक" खंड से शुरू हो रहा है।
फर्थ और थोड़ा सा और 64 बिट मानों पर है। बेशक ये ऑपरेटरों मास्क के साथ ठीक काम करते हैं। लेकिन यदि ये मान सभी या सभी शून्य हैं, तो परिणाम भी सभी या सभी शून्य हैं (यह बिट-वार या एक्सओआर इनवर्टर ऑपरेशंस के लिए भी सही है।)।
फोर्थ में एक बूलियन ध्वज सभी या सभी शून्य हैं। तो यदि इनपुट बूलियन झंडे हैं, तो एंड या एक्सओआर इनवर्टर का आउटपुट भी बूलियन होता है और इस तरह ऑपरेटर को बूलियन ऑपरेटर का प्रतिनिधित्व करने के लिए उपयोग किया जा सकता है। कृपया ध्यान दें कि = < 0 = जैसे परिणाम एक बुलियन ध्वज में परिणाम।
स्थिति + के साथ समान है। चूंकि पूर्णांक को दो पूरक के रूप में परिभाषित किया जाता है, + (प्लस) का उपयोग हस्ताक्षरित और हस्ताक्षरित संख्याओं के लिए भी किया जा सकता है। इसलिए पूर्णांक के हस्ताक्षरित जोड़े के लिए कोई अलग नाम नहीं है।
यह कहने के लिए पर्याप्त नहीं है कि यह मान्य है, लेकिन बिट पैटर्न 0xFF00 और 0x00FF में बिटवाई और 0x0000 है लेकिन तार्किक और सत्य है (क्योंकि दोनों nonzero हैं) – SingleNegationElimination
@TokenMacGuy: धन्यवाद! यह ऐसा उदाहरण था जिसे मैं ढूंढ रहा था। मैंने जवाब अपडेट किया है। –