2010-11-27 8 views
6

मैंने कुछ रिवर्स इंजीनियरों को देखा है, वे दशमलव को हेक्साडेसिमल में इतनी तेजी से बदलते हैं। यह बस अद्भुत है। मुझे उनसे पूछने का मौका कभी नहीं मिला। निजी तौर पर, मैं वास्तव में इसे इस रूपांतरण को चूसता हूं और मैं हमेशा रूपांतरण के लिए कैलकुलेटर का उपयोग करता हूं।वे दशमलव से हेक्साडेसिमल को इतनी तेजी से कैसे बदलते हैं (दिमाग में)?

मैं सोच रहा था कि इस रूपांतरण के लिए कोई छोटा सा कट है या नहीं?

मुझे लगता है कि विशेष रूप से एक रिवर्स इंजीनियर & निम्न स्तर (असेंबली, एंबेडेड) प्रोग्रामर के लिए लगता है। यह एक बड़ा प्लस है यदि वह दशमलव के बजाय हेक्स के संदर्भ में गिन सकता है, जोड़ सकता है, घटा सकता है और सोच सकता है। यदि आपके पास इसके लिए कोई सुझाव है, तो कृपया साझा करें।

+11

यदि आप हर समय कुछ करते हैं, तो अंत में आप – Cameron

+5

दशमलव पर हेक्स या हेक्स दशमलव पर बेहतर और तेज हो जाएंगे? उत्तरार्द्ध आपके दिमाग में 16 * अंकों की एक तालिका बनाने के साथ थोड़ा आसान है। पूर्व ज्यादातर यादें और परिणाम कैशिंग है। (वास्तव में, समय के साथ, वे फ्लाई पर हेक्स में एन्कोड किए गए कुछ सामान्य निर्देशों को अलग करते हैं) –

+0

@ मेहरदद अफशारी: '(वास्तव में, समय के साथ, वे फ्लाई पर हेक्स में एन्कोड किए गए कुछ सामान्य निर्देशों को अलग करते हैं)' बहुत सच! मैंने यह भी देखा है। मैं पूरी तरह से चौंक गया था! – claws

उत्तर

4

आपको हार्ट द्वारा मूल रूपांतरण 0-16, 0x0-0xF और 0b0-0b1111 रूपांतरणों को जानने की आवश्यकता है।

बाकी आप पुनरावृत्ति के साथ सीखते हैं। देखने के लिए अक्सर दोहराए गए पैटर्न होते हैं।

मल्टीपल्स:

  • 1024 (1K) 0x400
  • (1024 * 1024) 1048567 (1 मी) 0x100000
  • है सिर्फ 0x400000 के रूप में आकार 4M की प्राप्त करने के लिए 4 के साथ गुणा है।

बिट पदों के लिए इसी प्रकार यदि आप एक 16 बिट शब्द के दशमलव मान

  • सीख सकते हैं MSB
  • इस प्रकार अगले बिट एक मूल्य 0x4000 या 16384 या 16K है 0x8000 या 32768 या 32K है

ये पैटर्न हर जगह दोहराते हैं और समय के साथ आप उन्हें सीखना शुरू कर देंगे।

यदि आपके पास बाइनरी प्रतिनिधित्व है तो चार समूहों में बिट्स को समूहित करना और जल्दी से बाइनरी प्रतिनिधित्व में परिवर्तित करना आसान है।

दशमलव मान 0xA1B587DE को खोजने का एकमात्र यथार्थवादी तरीका कैलकुलेटर (या गणित में अविश्वसनीय रूप से अच्छा होना) का उपयोग करना है। लेकिन 0xA1B587DE से निकटतम 1k सीमा 0xA1B58400 है जो आपको पैटर्न के बारे में जानना आसान है।

opcode पर अपनी टिप्पणी से:
RISC प्रोसेसर सबसे निर्देश एक अनुदेश शब्द में सिर्फ पहले कुछ बिट्स के लिए शिक्षा का परिवार को परिभाषित करता है (mov, कूद, और, या, ...) और बाकी बस पैरामीटर है । यदि आप पर्याप्त प्रोसेसर के साथ काम करते हैं तो आप उन्हें सीखना शुरू कर देंगे।

+0

100 दशमलव 0x64 है, जबकि बाइट्स को देखते हुए 0x100 256 भी उपयोगी है। और आपको पता होना चाहिए कि एकल बिट्स क्या हैं: 0x80, 0x40, 0x20, 0x10। अन्यथा, अभ्यास आपको बेहतर बनाता है। – caveman

+0

वहां भी छोटी त्रुटि है। 0x10000 64k है, 1 मेग नहीं। वह 0x100000 है, यानी। 5 शून्य हालांकि मैं इसे 0x1_0000 के रूप में 64k और 0x10_0000 के रूप में एक मेग के रूप में सोचता हूं। – caveman

+0

@caveman: धन्यवाद ... ठीक है। – Gerhard

2

http://quashnick.net/geek_stuff/HEX2DEC.html

यहाँ प्रक्रिया है। बाकी गणित है। यदि आप मक्खी पर गुणा और विभाजन कर सकते हैं तो आपको दशमलव को हेक्स या vise के विपरीत बदलने में समस्या नहीं होनी चाहिए।

+0

यह क्या है? आपने अभी पंजीकृत किया है और मेरे प्रश्न का उत्तर दिया है? – claws

0

एक बार जब आप शामिल संख्या प्रणाली के आधार को समझते हैं तो यह काफी आसान है। हेक्साडेसिमल आधार 16 है - इसलिए, 1 (डीसी) = 0x01; लेकिन 16 (डीसी) = 0x10।

जब भी आप एक दशमलव संख्या को देखते हैं, कहते हैं, 39:

16 से विभाजित यह और बस भागफल ले - यह 2 (2 * 16 = 32) शेष है 7 (39 - 32)

दशमलव 39 का हेक्स मान इसलिए है: 0x27।

अब, यह दशमलव के लिए वापस परिवर्तित: 0x27 = 2 * 16 + 7 = 39 दशमलव :)

आशा है कि आप विचार आया !!

संबंधित मुद्दे