2009-06-18 10 views
5

मैं थोड़ा उत्सुक हूं कि क्यों बेस बेस पर हेक्स एन्कोडिंग का उपयोग करना चाहेंगे। मुझे लगता है कि बेस 64 अधिक कुशल है। विशेष रूप से, यह क्यों है कि डेटाबेस हमेशा हेक्स एन्कोडिंग का उपयोग करते प्रतीत होते हैं? क्या यह एक ऐतिहासिक मुद्दा है, या क्या मुझे हेक्स एन्कोडिंग के बारे में कुछ याद आ रहा है?द्विआधारी डेटा के लिए हेक्स-एन्कोडिंग का उद्देश्य क्या है?

उत्तर

5

स्क्रीन से BASE64 पढ़ने के लिए आपको एक वास्तविक गीक होना चाहिए।

Oracle में, जब मैं HEXTORAW चलाने के लिए, मैं क्या एक RAW क्षेत्र में है के कुछ विचार प्राप्त कर सकते हैं, लेकिन मैं BASE64 साथ नहीं कर सके।

जैसा कि, मुझे 0x3F के बहुत सारे दिखाई देते हैं, मुझे पता है कि एन्कोडिंग के साथ कुछ है।

और आंतरिक रूप से, ये केवल द्विआधारी बाइट हैं, उन्हें एन्कोड करने की कोई अन्य आवश्यकता नहीं है बल्कि स्क्रीन के दूसरी तरफ किसी व्यक्ति को दिखाने के लिए कोई अन्य आवश्यकता नहीं है।

+0

यदि आपको बाइनरी और उपयोग करने के लिए डीकोड किए जाने के लिए आपको ASCII पर कहीं कहीं भेजने की आवश्यकता है, तो आपको केवल बेस 64 में परिवर्तित करने की आवश्यकता होगी। –

0

मुझे लगता है कि आपका डेटाबेस वास्तव में डेटा को बाइनरी के रूप में संग्रहीत कर रहा है, लेकिन क्वेरी संपादक हेक्स एन्कोडिंग का उपयोग करके इसे दिखाएगा। यह SQL सर्वर क्वेरी विश्लेषक क्या करेगा।

0

मैं यह सिर्फ निजी प्राथमिकता का मामला है लगता है ... हेक्स मुझे तो Base32 या Base64

3

में कुछ पढ़ने के लिए यह कुशल स्थान उपयोग और पठनीयता के बीच एक अच्छा समझौता है काफी आसान कर रहा है। बिट पैटर्न हेक्स में बहुत स्पष्ट हो जाते हैं, जबकि अन्य आधार स्पष्ट नहीं होते हैं।

जो पढ़ने के लिए आसान है, 0x8080 या 32896? मैं कहूंगा हेक्स मान है।

इसमें प्रत्येक हेक्स अंकों की नींबू के बराबर होने वाली अच्छी संपत्ति भी है (इसलिए प्रत्येक जोड़ी बाइट के बराबर होती है)।

यह जहाँ तक डेटाबेस के रूप में आधार 64 से अपने सिर में हेक्स के अर्थ

, अच्छी तरह से वहाँ डेटा प्रदर्शित किया जाता है और यह कैसे संग्रहीत किया जाता है कैसे बीच एक अंतर है कि ध्यान में रखना काफी आसान है। यह डेटा को हेक्स के रूप में प्रदर्शित करने की संभावना है।

2

बेस 64 काम नहीं करता है यदि आप परिणामस्वरूप मानों को विंडोज़ पर फ़ाइल नाम के रूप में उपयोग करना चाहते हैं, क्योंकि बेस 64 दोनों अपरकेस और लोअरकेस अक्षरों का उपयोग करता है। मुझे यकीन है कि ऐसे कई बार भी हैं जब इसे समान कारणों से उपयोग नहीं किया जा सकता है।

पठनीयता के संबंध में अन्य उत्तरों के साथ सहमत हैं - हेक्स अंक 8-बिट बाइट्स पर अच्छी तरह से संरेखित होते हैं, जबकि बेस 64 "अंक" नहीं होते हैं, और एक अंक में दो बाइट्स के हिस्से हो सकते हैं।

+0

एक कोने का मामला थोड़ा सा, लेकिन बेस 64 का उपयोग न करने का एक अच्छा कारण है। –

1

स्ट्रिंग स्टोरेज ("संभावित रूप से" एक्सएमएल सुरक्षित एन्कोडिंग के साथ) के मामले में आप एएससीआईआई 85 के साथ और भी अधिक दक्षता प्राप्त कर सकते हैं क्योंकि यह बेस 64 के लिए 4/3 के बजाय 5/4 ब्लोट है।

लेकिन बेस 64 को "पढ़ने" के लिए भी मुश्किल है। और कई एप्लिकेशन इसका समर्थन नहीं करते हैं, इसलिए आपको एन्कोडिंग और डिकोडिंग करने के लिए अपने स्वयं के वर्ग/फ़ंक्शन लिखना पड़ता है।

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