क्या बीसी हेक्स गणना का समर्थन करता है?


20

मैं hexसीधे एक गणना करने की कोशिश कर रहा हूं bc, मैंने पहले ही पैमाने निर्दिष्ट कर दिए हैं।

echo 'scale=16;c06b1000-c06a5e78' | bc

लेकिन मुझे अभी भी एक शून्य मिलता है। क्या गलत हो सकता है?


जबकि तकनीकी रूप से आपके प्रश्न का उत्तर नहीं है, आप bc (1) के बजाय moo (1) पर विचार करना चाह सकते हैं ।

जवाबों:


33
echo 'ibase=16;C06D1000-C06A5E78' | bc
176520

ध्यान दें कि केवल UPPER CASE हेक्स अंकों को निचले मामले के रूप में समर्थित किया जाता है, जो फ़ंक्शन और चर नामों के साथ संघर्ष करेंगे, यही कारण है कि आपको अपने उदाहरण में 0 मिला है ( var1 - var2)

यदि आपको हेक्स में भी उत्तर की आवश्यकता है, तो बस obaseचर सेट करें :

echo 'obase=16;ibase=16;C06D1000-C06A5E78' | bc
2B188

पुनश्च: FYI scaleको रूपांतरण आधार के लिए नहीं बनाया गया है। से man bc:

scale defines how some operations use digits after the decimal point.
The default value of scale is 0.

तो 'क्या गलत हो सकता है' पर असली जवाब यह है कि bx केवल hex अंकों के लिए UPPER CASE का समर्थन करता है, जिसका श्रेय संपादक स्टीफन को जाता है।
रोलैंड

ध्यान दें कि सेट करने obaseसे पहले इसे सेट करना महत्वपूर्ण है ibase। यदि आप ibaseपहले सेट करते हैं , तो यह obaseभी के लिए पार्स किए गए मूल्य को प्रभावित करता है। यानी 0x16 = 22 पर ibase = 16; obase = 16;सेटobase
अर्नवियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.