2010-10-26 15 views
63

किसी कृपया समझा सकते हैं, मैं वास्तव में नहीं मिलता है यहबाइट सरणी से हमारा क्या मतलब है?

क्या एक बाइट सरणी
है कहाँ और जब हम आवेदनों/कार्यक्रमों में इसका इस्तेमाल
फायदे और एक बाइट सरणी

का उपयोग कर के असंतुष्ट फायदे क्या हैं
+0

मुझे लगता है कि यह समझ में आता है; क्योंकि यदि आप जावा I/O कक्षाएं पढ़ते हैं; उदाहरण के लिए ByteArrayInputStream; ByteArrayOutputStream। जब तक कोई बाइटएरे को समझता नहीं है, तब तक कोई कैसे बाइटएरेइन इनपुट स्ट्रीम, बाइटएरे ऑटपुटस्ट्रीम का अर्थ बताता है? – CuriousMind

उत्तर

45

एक बाइट 8 बिट्स (बाइनरी डेटा) है।

एक बाइट सरणी बाइट्स (टॉटोलॉजी एफटीडब्ल्यू!) की एक सरणी है।

आप बाइनरी डेटा का संग्रह संग्रहीत करने के लिए बाइट सरणी का उपयोग कर सकते हैं, उदाहरण के लिए, फ़ाइल की सामग्री। इसका नकारात्मक पक्ष यह है कि पूरी फ़ाइल सामग्री को स्मृति में लोड किया जाना चाहिए।

बड़ी मात्रा में द्विआधारी डेटा के लिए, स्ट्रीमिंग डेटा प्रकार का उपयोग करना बेहतर होगा यदि आपकी भाषा इसका समर्थन करती है।

+7

अत्यंत pedantic पाने के लिए, एक बाइट 8 बिट होने की गारंटी नहीं है। यह निश्चित रूप से आज का वास्तविक तथ्य है लेकिन ऐतिहासिक रूप से यह हमेशा मामला नहीं रहा है। http://en.wikipedia.org/wiki/Byte – JaredPar

+7

@ जेरेडपार: सटीक लेकिन मुझे लगता है कि हर बार जब कोई कहता है कि बाइट 8 बिट्स है तो अस्वीकरण के लिए यह थोड़ा अधिक होगा। – Dinah

+4

@ दीना, मैं सहमत हूं, यही कारण है कि मैंने पैडेंटिक अस्वीकरण जोड़ा। मैं आज प्रासंगिक पेज को देख रहा था। – JaredPar

5

wikipedia से:

कंप्यूटर विज्ञान में, एक सरणी डेटा संरचना या बस सरणी एक डेटा संरचना एक संग्रह तत्वों (मान या चर) की , से मिलकर प्रत्येक एक या अधिक से पहचान है पूर्णांक इंडेक्स, संग्रहीत, ताकि का पता प्रत्येक तत्व को इंडेक्स टुपल से सरल गणितीय फ़ॉर्मूला द्वारा गणना की जा सके।

तो जब आप कहते हैं कि बाइट सरणी, आप कुछ परिभाषित लंबाई (तत्वों के जैसे संख्या) कि बाइट (8 बिट) आकार तत्वों का संग्रह होता की एक सरणी की चर्चा करते हुए कर रहे हैं।

सी # में एक बाइट सरणी दिखाई दे सकता है जैसे:

byte[] bytes = { 3, 10, 8, 25 }; 

नमूना ऊपर 4 तत्वों, जहां प्रत्येक तत्व लंबाई में एक Byte तक हो सकता है की एक सरणी को परिभाषित करता है।

25

मुझे लगता है कि आप जानते हैं कि बाइट क्या है। एक बाइट सरणी बस स्मृति का एक क्षेत्र होता है जिसमें संगत (साइड बाय साइड) बाइट्स का समूह होता है, जैसे कि उनके बारे में बात करना समझ में आता है: पहला बाइट, दूसरा बाइट इत्यादि ..

बस बाइट्स के रूप में डेटा के विभिन्न प्रकारों और श्रेणियों को एन्कोड कर सकते हैं (0 से 255 तक की संख्या, -128 से 127 तक, ASCII जैसे 'ए' या '%', सीपीयू ओप-कोड) का उपयोग करने वाले एकल वर्ण, बाइट सरणी में प्रत्येक बाइट कोई भी हो सकता है इन चीजों में से, या कुछ बहु-बाइट मानों में योगदान दें जैसे कि बड़ी रेंज वाली संख्याएं (उदाहरण के लिए 0.65535 से 16-बिट हस्ताक्षरित int), अंतर्राष्ट्रीय चरित्र सेट, टेक्स्ट स्ट्रिंग्स ("हैलो"), या भाग/सभी संकलित कंप्यूटर प्रोग्राम।

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

+0

यह स्वीकार्य उत्तर होना चाहिए। –

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