हेक्साडेसिमल प्रणाली क्या है?


13

हेक्साडेसिमल प्रणाली क्या है और कंप्यूटिंग में इसका उपयोग क्यों किया जाता है? मुझे पता है कि कंप्यूटर डेटा को स्टोर करने के लिए 0s और 1s का उपयोग करते हैं, तो हम हेक्साडेसिमल का उपयोग कैसे करते हैं?


13
यदि ऑफ-टॉपिक नहीं है, तो सुपर यूजर की शुरुआत के 5 साल बाद ऐसा मूल प्रश्न कैसे नहीं है?
पीटर मोर्टेंसन

3
@PeterMortensen यहां तक ​​कि निराई, यह अभी तक किसी भी बहन साइटों पर नहीं पूछा गया है, कम से कम, ऐसा नहीं है कि मुझे नहीं मिल सकता है।
नजल्ल

9
हो सकता है कि यह पूछे जाने की आवश्यकता न हो कि विकिपीडिया के पास बहुत अच्छा जवाब है: en.wikipedia.org/wiki/Hexadecimal
Piers Myers

4
इतने अपवित्र क्यों?
वि।

जवाबों:


31

हेक्साडेसिमल एक संख्या प्रणाली है जो कंप्यूटिंग में बहुत आम है। आपने पहले बाइनरी के बारे में सुना होगा , जिसमें केवल 1s और 0s हैं।

मनुष्य ज्यादातर दशमलव (आधार 10) प्रणाली का उपयोग करते हैं , जिसमें हमारे 10 अंक होते हैं:

0, 1, 2, 3, 4, 5, 6, 7, 8 और 9

हालाँकि, कंप्यूटर दशमलव प्रणाली का उपयोग नहीं करते हैं। उनके पास एक द्विआधारी राज्य है (कुछ या तो सच है या गलत है) और इसलिए आधार 2 में संचालित होता है (केवल आम तौर पर 0 और 1 होने वाले बाइनरी नंबर 0 बी हैं)।

पहले के दिनों में, ऑक्टल (या बेस 8) का उपयोग किया जाता था। यह अच्छा था क्योंकि आधार 8 में "10" बाइनरी में "0b1000" था (बाइनरी में 10 दशमलव में 1010 है)। अष्टक आमतौर पर संख्या लिखते समय "0o" उपसर्ग होता है (लेकिन अधिकांश प्रोग्रामिंग भाषाओं में सिर्फ '0' का उपसर्ग होता है)। इसे आधार 8 कहा जाता है क्योंकि हमारे पास आठ अंक हैं।

ऑक्टल का उपयोग आज भी किया जा रहा है, ज्यादातर यूनिक्स और लिनक्स में अनुमतियाँ सेट करते समय

जैसे-जैसे समय बीत रहा था, हमें बड़ी संख्या का प्रतिनिधित्व करने के लिए एक आसान तरीका चाहिए था, क्योंकि कंप्यूटिंग शक्ति और स्थान तेजी से बढ़ रहा था। यह हेक्साडेसिमल या बेस 16 का उपयोग करने के लिए मानक बन गया , क्योंकि 16, 8 की तरह 8 एक 2 की शक्ति है, जो डिजिट-बाय-डिजिट रूपांतरण करना आसान बनाता है ( यह टिप्पणी देखें। क्योंकि वहाँ 16 अंक हैं, अक्षरों का उपयोग किया गया था। अन्य अंक। इसके अलावा, हेक्स आमतौर पर 0x के साथ उपसर्ग होता है।

हेक्स संख्या भी उपयोगी है क्योंकि एक हेक्स संख्या 4 बिट्स है (1 ऑक्टल संख्या 2 का प्रतिनिधित्व कर सकती है), और इसलिए एक बाइट में दो नंबर। अधिकांश हेक्स संपादकों में , यह एक बाइट का प्रतिनिधित्व करता है।

गिनती

बेस 10 में, हमारे पास 10 अंक हैं। 9 के बाद, हम क्या करते हैं? हम अंकों से बाहर हैं। हम मूल संख्या के बाईं ओर एक "दसवीं" जगह बनाते हैं, जो कि 1 है और सबसे दाईं ओर बनती है। 0. हेक्साडेसिमल में भी यही होता है:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ए, बी, सी, डी, ई, एफ, 10, 11, आदि।

जब तक हम 0x1F पर नहीं आते हैं, और तब प्रक्रिया 0xFF (दशमलव में 255) तक दोहराती है और तब हमें 0x100 मिलता है। मतगणना के बारे में अधिक जानकारी यहां पाई जा सकती है

यहाँ दशमलव, हेक्साडेसिमल, ऑक्टल और बाइनरी के बीच रूपांतरण दिखाने वाला एक चार्ट है: हेक्साडेसिमल रूपांतरण चार्ट


21
मुख्य लाभ यह है कि, क्योंकि 16 2 की शक्ति है, आप डिजिट-बाय-डिजिट रूपांतरण कर सकते हैं।
TRIG

2
ध्यान दें कि कई भाषाएं 0उपसर्ग का उपयोग करती हैं न 0oकि अष्टक संख्याओं के लिए।
22

2
टीआरजी की टिप्पणी से आपके नोट के 16 के बारे में 2 के एक से अधिक होने को गलत तरीके से कॉपी किया गया है। एकाधिक होना प्रासंगिक संबंध नहीं है।
रायन रीच

2
@ justcool393, ध्यान देने योग्य हो सकता है कि जिसे आप "आधार 10" कहते हैं, उसका नाम वास्तव में "दशमलव" है। यह बेस 8 (ऑक्टल), बेस 10 (दशमलव) और बेस 16 (हेक्साडेसिमल) के बीच संबंधों को स्पष्ट करने में मदद कर सकता है।
हेलोसॉस्ट

3
Arrrg। हर बेस 10 बेस है! stale.soup.io/post/114652207/every-base-is-base-10
woliveirajr

4

हेक्साडेसिमल प्रणाली क्या है

हेक्साडेसिमल सिस्टम आधार -16 नंबरिंग प्रणाली है जो 16 अंकों ( 0123456789ABCDEF) का उपयोग करता है , बाइनरी के विपरीत जो 2 ( 01), या दशमलव का उपयोग करता है जो 10 (0-9) का उपयोग करता है। चूँकि केवल 10 अंकीय अंक (हमारी प्रणाली में) हैं, ए से एफ तक के अक्षरों का उपयोग इसके बजाय "अंक # 10," "अंक # 11," आदि का वर्णन करने के लिए किया जाता है।

कंप्यूटिंग में इसका उपयोग क्यों किया जाता है

16 2 की शक्ति है, जो हेक्साडेसिमल संख्याओं को द्विआधारी संख्याओं में बदलना आसान बनाता है, और जैसा कि आपने उल्लेख किया, "कंप्यूटर डेटा को स्टोर करने के लिए 0 और 1 एस का उपयोग करते हैं।" चूंकि प्रत्येक अंक डेटा के 4 बिट्स को संग्रहीत करता है, एक हेक्साडेसिमल अंक को 4 बाइनरी अंकों (1 बिट) में बहुत आसानी से परिवर्तित किया जा सकता है, और इसके विपरीत।

| hex bin  | hex bin  |
| 0   0000 | 8   1000 |
| 1   0001 | 9   1001 |
| 2   0010 | A   1010 |
| 3   0011 | B   1011 |
| 4   0100 | C   1100 |
| 5   0101 | D   1101 |
| 6   0110 | E   1110 |
| 7   0111 | F   1111 |

हम हेक्साडेसिमल का उपयोग कैसे करते हैं

यह बड़ी संख्या का प्रतिनिधित्व करने के लिए बाइनरी की तुलना में आसान बनाता है। सिर्फ दो हेक्साडेसिमल अंक 256 विभिन्न मूल्यों का प्रतिनिधित्व कर सकते हैं, जैसे कि:

dec  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
hex 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 ...

चार हेक्स अंक 65536 मूल्यों का प्रतिनिधित्व कर सकते हैं, और इसी तरह। हेक्स यह बहुत आसान है कुछ एक कहा जाता है के साथ डेटा का निरीक्षण करने के लिए बनाता है hexdump के रूप में अक्षर, संख्या, और विराम चिह्न, वह स्वरूप है जो 0 और 256 के बीच की संख्या को हर किरदार के नक्शे (बुलाया में जमा हो जाती ASCII , या कभी कभी अन्य एन्कोडिंग का उपयोग)। इसके अलावा, कई अन्य फ़ाइल प्रारूप (जैसे कि पीएनजी) को सिलवाया गया है ताकि प्रत्येक जानकारी में यह जानकारी हो कि फाइल 256 बिट्स से बनी है।

संक्षेप में, 16 2 की शक्ति है और 256 16 की शक्ति है। यह द्विआधारी संख्या और पाठ या अन्य डेटा दोनों का प्रतिनिधित्व करने का एक अच्छा तरीका है।


2

हेक्साडेसिमल प्रणाली क्या है?

यदि आपके पास एक नंबर की abcd है तो यह ((a * + b) + c) + d के बराबर है । तो यह इस प्रकार है:

  • abcd (बाइनरी) = ((a * 2 + b) * 2 + c) * 2 + d
  • abcd (ऑक्टल) = ((* * 8 + b) * 8 + c) * 8 + d
  • abcd (दशमलव) = ((a * 10 + b) * 10 + c) * 10 + d
  • abcd (हेक्साडेसिमल) = ((* * 16 + b) * 16 + c) * 16 + d

एक हेक्साडेसिमल प्रणाली में आपको 16 अंकों की आवश्यकता होती है, लेकिन हमारे पास केवल दस अंक उपलब्ध हैं (0..9)। तो 6 अंकों के लापता होने के लिए A..F का उपयोग A = 10, ..., F = 15 के साथ किया जाता है।

बेशक आप कई अन्य संख्या प्रणालियों के बारे में भी सोच सकते हैं, उदाहरण के लिए 5 या 7 के आधार के साथ।

संख्याओं की गणना के लिए यह मायने नहीं रखता कि आप किस आधार का उपयोग कर रहे हैं। आप बाइनरी सिस्टम में जोड़ सकते हैं और गुणा कर सकते हैं, आप इसे दशमलव प्रणाली में कर सकते हैं और आप इसे हेक्साडेसिमल सिस्टम में कर सकते हैं। हम दशमलव प्रणाली में गणना करने के लिए उपयोग किए जाते हैं, कंप्यूटर बाइनरी सिस्टम में करते हैं।

कंप्यूटिंग में हेक्साडेसिमल प्रणाली का इतना उपयोग क्यों किया जाता है?

जैसा कि ऊपर कहा गया है कि यह मायने नहीं रखता कि आप किस नंबर सिस्टम में नंबर देते हैं। अंतर्निहित संख्या समान है, केवल प्रतिनिधित्व बदलता है। कंप्यूटर आंतरिक रूप से हमेशा द्विआधारी में संख्याओं (जैसे के साथ गणना) का उपयोग करेगा।

तो प्रोग्रामर (मेरे जैसे) अलग-अलग नंबर सिस्टम का उपयोग क्यों करते हैं? 2. एक शक्ति के आधार पर संख्या प्रणाली चुनने के दो कारण हैं। पहला लघुता है और दूसरा एक अच्छा दृश्य है जिसमें बिट्स सेट किए गए हैं।

तकलीफ

यदि मेरे पास एक फ़ंक्शन है जो कंसोल के लिए एक बफर की सामग्री लिख रहा है तो मैं कोड को दशमलव में प्रिंट कर सकता हूं, जो 1 से 3 अंक है (दशमलव: 0..255)। यदि मैं बाइनरी प्रारूप में संख्या लिख ​​रहा हूं तो मैं 1 से 8 अंकों (बाइनरी: 0..11111111) के आउटपुट के साथ समाप्त होगा। मैं अष्टक प्रणाली का उपयोग भी कर सकता था और 1 से 3 अंकों (ऑक्टल: 0..377) या हेक्साडेसिमल के साथ 1 से 2 अंकों (हेक्साडेसिमल: 0..ff) के साथ समाप्त हो सकता था।

यह केवल एक बाइट के लिए था। अब मान लेते हैं कि आप 32 बिट संख्या लिखना चाहते हैं:

  • बाइनरी: 0..1111111111111111111111111111111111
  • अष्टदल: 0..37777777777
  • दशमलव: 4294967295
  • हेक्साडेसिमल: 0..ffffffff

जैसा कि आप देख सकते हैं कि हेक्साडेसिमल आउटपुट सबसे छोटा है।

बिट्स को देखकर

पैक की गई जानकारी को संग्रहीत करने के लिए एक सामान्य पैटर्न व्यक्तिगत रूप से बाइट में प्रत्येक बिट का उपयोग करना है। चलो उदाहरण फ़ाइल विशेषताओं के लिए लेते हैं ( एमडीएसएन देखें )। आप "छिपी", "संग्रह", "आसानी से", "अस्थायी" और अन्य विशेषताओं को चाहते हैं। आप प्रत्येक विशेषता को एक बाइट में संग्रहीत कर सकते हैं या आप जानकारी को एक बाइट (या एकाधिक बाइट्स) में पैक कर सकते हैं जहां प्रत्येक बिट बिल्कुल एक विशेषता का प्रतिनिधित्व करता है। यदि आप MSDN आलेख में dwFlagsAndAttributes को देखते हैं, तो आप देख सकते हैं कि Windows इस पैटर्न का उपयोग कर रहा है।

MSDN पृष्ठ पर बने रहने दें FILE_ATTRIBUTE_ENCRYPTEDउदाहरण के रूप में, यह ध्वज दशमलव 16384 है और हेक्साडेसिमल 0x4000 है। प्रमुख "0x" केवल हेक्साडेसिमल संख्याओं को चिह्नित करने के लिए एक सी प्रोग्रामर का सम्मेलन है, इसलिए हम बस 4000 पर देखेंगे। जब आप जानना चाहते हैं कि कौन से बिट सेट हैं, तो आपको पहले 16384 बाइनरी में बदलने की आवश्यकता होगी - कुछ भी नहीं सामान्य रूप से मानसिक अंकगणित के साथ करते हैं। लेकिन चलो हेक्साडेसिमल 4000 लेते हैं। यह काफी आसान है। 16 2 * 4 है, इसलिए प्रत्येक हेक्साडेसिमल संख्या 4 बिट्स है। इसके लिए हम सिर्फ 4 को बाइनरी 0100 में और जीरो को बाइनरी 0000 में बदल देते हैं और हम कर रहे हैं।

अक्सर यह व्यक्तिगत बिट्स के बारे में नहीं होता है, लेकिन प्रोग्रामर 2 की शक्तियों के लिए चीजों को संरेखित करते हैं। हम कार्यक्रमों को एक यादृच्छिक पते पर लोड करना पसंद करते हैं, लेकिन एक पते पर 16 कम महत्वपूर्ण बिट्स के साथ शून्य पर सेट करते हैं। इस तरह से यदि आपके पास 0x12345678 का पता है तो आप आसानी से देख सकते हैं कि यह पता 0x1234 पर लोड किए गए प्रोग्राम का है, न कि 0x03810000 पर लोड होने वाले के लिए।

बाइनरी, ऑक्टल या हेक्साडेसिमल को प्राथमिकता दें?

वह स्वाद का सवाल है। यदि आप सीधे बिट्स देखना चाहते हैं तो बाइनरी ठीक हो सकता है। यदि आप 23 या बिट 24 सेट है या नहीं, यह देखने के लिए अंकों की गणना करने के लिए लंबी संख्या के लिए बाइनरी निराशाजनक हो सकता है। यह हेक्साडेसिमल के साथ आसान है क्योंकि प्रत्येक अंक 4 बिट्स का प्रतिनिधित्व करता है, इसलिए आपके पास कम गिनती शामिल है। व्यक्तिगत रूप से मैं शायद ही कभी अष्टाधारी का उपयोग करता हूं। यह बहुत ही असामान्य है।

लेकिन आधार 32 का उपयोग क्यों नहीं किया गया?

बेस 32 2 की शक्ति है, यह बहुत अच्छा है। लेकिन आपको 32 अंकों की आवश्यकता होगी जैसे 0..9, A..V। यह याद रखने के लिए बहुत अधिक अंक हैं (क्या आप आसानी से यह पता लगा सकते हैं कि 'S' किस नंबर पर प्रतिक्रिया देगा?)। एक और चेतावनी यह है कि आधार 32 के साथ आप अच्छी सुविधा को ढीला कर देते हैं कि दो हेक्साडेसिमल अंक बिल्कुल एक बाइट होते हैं, जो स्मृति सामग्री पर एक नज़र डालने पर वास्तव में काम में आता है! इसके अलावा आधार 32 के साथ आपके पास अभी भी 2 अंकों की आवश्यकता है ताकि एक बाइट के मानों का प्रतिनिधित्व किया जा सके। 32 बिट मूल्य के लिए आपको 8 हेक्साडेसिमल अंकों के बजाय केवल 7 अंकों की आवश्यकता होती है, लेकिन यह आधार 32 प्रणाली के नुकसान के साथ रहने के लिए इतना नहीं है।


1

आज उपयोग की जाने वाली विभिन्न संख्या प्रतिनिधित्व प्रणालियाँ (= शामिल हैं):
बाइनरी, ऑक्टल, दशमलव और हेक्साडेसिमल।
जो एक चुना जाता है वह अक्सर हाथ में कार्य के लिए उपयोग में आसानी पर निर्भर होता है।

बाइनरी का उपयोग सामान्य रूप से कंप्यूटर सिस्टम और डिजिटल तकनीक के भीतर किया जाता है, क्योंकि इलेक्ट्रॉनिक्स के भीतर प्रतिनिधित्व करना आसान है; बेस -2 नंबरों के लिए कार्य करना आसान है, जैसा कि चालू / बंद, सही / गलत, या किसी अन्य समान दो-राज्य सूचनाओं का प्रतिनिधित्व है।

ऑक्टल अच्छा है अगर तीन बाइनरी अंकों के समूह हैं, जैसे कि यूनिक्स / लिनक्स में अनुमति सेटिंग्स में मामला है।

एक पल के लिए दशमलव को छोड़ना , हेक्साडेसिमल अष्टक के समान लेकिन चार बाइनरी अंकों के लिए अच्छा है, और तथ्य यह है कि 8 बिट्स, एक बाइट, दो हेक्साडेसिमल अंकों में अच्छी तरह से फिट बैठता है। ( = इसका उत्तर )
इस प्रकार है कि कंप्यूटर में समान रूप से 8-बिट-समूह आसानी से लिखा, दर्शाया और समझा जाता है - अर्थात; सॉफ्टवेयर लिखते समय, डेटा को हैंडल करते समय दैनिक उपयोग में बहुत सुविधाजनक है (उदाहरण के लिए HTML / CSS में आरजीबी रंग मान), डेटा संरचनाएं और इसी तरह के कुछ और।

दशमलव । कोई अनुमान लगा सकता है कि दशमलव प्रणाली इस तथ्य से विकसित हुई है कि हमारे पास दस उंगलियां और पैर की उंगलियां हैं। एक एकल अंक गिनती की गई वस्तुओं की संख्या का प्रतिनिधित्व करता है, प्रत्येक उंगली के लिए अधिकतम दस तक।

ये संख्या प्रणाली का प्रतिनिधित्व करते हैं:
2, 8, 10 और 16।

आम तौर पर आधार बताता है कि कितने एकल "आइटम" आप गिन सकते हैं, उदाहरण के लिए बाइनरी में दो, दशमलव में दस हैं।
जैसा कि हेक्साडेसिमल में 16 एकल अंक आइटम हैं, सिस्टम को 16 "संख्याओं" की आवश्यकता होती है, इसलिए दशमलव की तुलना में 0-9 और एफ (6 अतिरिक्त) का उपयोग करते हुए, जहां "एक" 10 और "एफ" दशमलव प्रणाली में 15 के बराबर है।

सामान्य मोड के साथ जारी रखने के लिए: किसी भी आधार 2 या उच्चतर कार्यों के साथ-साथ कुछ भी और जब तक आपके पास एक अच्छा एकल अंक प्रतिनिधित्व नहीं है।

दशमलव में संख्याएँ इसके द्वारा बनाई जाती हैं:

... d * 10¹ + c * 10² + b * 10 a + a * 10³

दशमलव संख्या "dcba" के लिए - d, c, b, a के साथ, 0123456789 से लिया गया

अब इसे बदल दें:

... डी * बेस¹ + सी * बेस² + बी * बेस a + ए * बेस³

और आपके पास एक अधिक सामान्य रूप है जो दिखाता है कि कोई भी आधार 2 या उच्चतर "कार्य" कैसे करता है;
एक पाँच अंक, उदाहरण के लिए, बेस 5 उतने ही सुविधाजनक हो सकते हैं, जितने अन्य किसी भी व्यक्ति के लिए सुविधाजनक हैं, या क्यों नहीं 12 अंक (एक दर्जन) प्रणाली समय के लिए (12 घंटे = "10" आधार 12, पहले "दशमलव" के साथ जो बता रहे हैं) 1/12 वीं [5 मिनट] एक घंटे का है)

नोट: shows - सुपरस्क्रिप्ट 0123 यदि आपकी स्क्रीन कुछ और दिखाती है


वर्तमान में यह 'स्टब' हो सकता है जो वास्तव में यह बन सकता है।
हन्नू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.