मुझे गोल्फ खेलना पसंद है dc
, लेकिन मुझे कभी-कभी निराशा होती है क्योंकि dc
बिटवाइज़ ऑपरेशन नहीं होते हैं।
चुनौती
चार नामित कार्य करता है जो ग बिटवाइज़ आपरेशन के बराबर लागू प्रदान करें &
, |
, ~
और ^
(बिटवाइज़ और, या, नहीं और XOR)। प्रत्येक फ़ंक्शन दो ऑपरेंड लेगा ( ~
केवल एक लेता है) जो कम से कम 32-बिट अहस्ताक्षरित पूर्णांक हैं। प्रत्येक फ़ंक्शन ऑपरेंड के समान बिट-चौड़ाई का एक अहस्ताक्षरित पूर्णांक लौटाएगा।
बंधन
आप केवल उन ऑपरेशनों का उपयोग कर सकते हैं जिनका समर्थन किया जाता है dc
। य़े हैं:
+
-
*
/
अंकगणित जोड़, घटाव, गुणा और भाग~
modulo (या divmod अगर आपकी भाषा इसका समर्थन करती है)^
घातांक|
मॉड्यूलर घातांकv
वर्गमूल>
>=
==
!=
<=
<
मानक समानता / असमानता ऑपरेटरों>>
<<
बिट शिफ्ट ऑपरेटरों।dc
इनमें से नहीं है, लेकिन जब से इन्हें 2 की शक्तियों द्वारा विभाजन / गुणन के संदर्भ में तुच्छ रूप से लागू किया जाता है, तब मैं इन्हें अनुमति दूंगा।
dc
मेरी संरचना में नियंत्रण संरचनाएं (पुनरावर्ती) मैक्रोज़ और (इन) समानता संचालन का उपयोग करके निर्मित की जाती हैं। आप अपनी भाषा में जो भी अंतर्निर्मित नियंत्रण संरचनाएं उपयोग कर सकते हैं।
आप तार्किक परिचालकों का भी उपयोग कर सकते हैं &&
||
!
, भले ही ये सीधे उपलब्ध न हों dc
।
आप बिटवाइज़ ऑपरेटर्स उपयोग नहीं करना चाहिए &
, |
, ~
और ^
या किसी कार्यों कि तुच्छता से उन्हें लागू।
इसके अलावा आपको अंतर्निहित आधार-रूपांतरण-के-स्ट्रिंग ऑपरेटरों या कार्यों का उपयोग नहीं करना चाहिए।
कृपया अपने उत्तर को सत्यापित करने में सहायता के लिए एक परीक्षण कार्यक्रम या ऑनलाइन संकलक स्निपेट (गोल्फ स्कोर में शामिल नहीं) प्रदान करने पर विचार करें।