বাইট স্ট্রিম আসলে কী?


34

বাইট স্ট্রিমটি আসলে কী আমাকে বোঝাতে পারে? এটিতে কী বাইটস (হেক্স ডেটা) বা বাইনারি ডেটা বা ইংরাজী অক্ষর রয়েছে? "কাঁচা তথ্য" শব্দটি সম্পর্কে আমিও বিভ্রান্ত। যদি কেউ আমাকে "4 বাইট ডেটা বিপরীতমুখী" করতে বলে, তবে ডেটা হেক্স কোড বা বাইনারি কোড হ'ল আমি কী অনুমান করব?


আমার দুটি সেন্টের উপযুক্ত উত্তর নেই (এবং নীচে ইতিমধ্যে ভাল রয়েছে) তবে আমি কেবল এই 2 টি নিবন্ধের লিঙ্কগুলি সরবরাহ করতে চাই যা সম্ভবত "কাঁচা তথ্য" কীভাবে কিছু বোঝাতে বোঝায় তা সম্পর্কে ভাল অন্তর্দৃষ্টি প্রদান করবে (এটি হয় না এটির প্রতিনিধিত্ব করার কথা এবং এটি কীভাবে এনকোড করা / সংরক্ষণ করা হয় তা আপনি যদি না জানেন তবেই কোনও
মাইকেল

1
আমি মনে করি যে জাভা একটি চরিত্র হিসাবে বোঝা যায় না এমন জিনিসগুলির জন্য সি / সি ++ এর চরের ব্যবহার এড়াতে বাইট তৈরি করেছে। চরটি সি / সি ++ তে প্রচুর ব্যবহৃত হয়েছিল কারণ চরের আকার 1 বাইট। এছাড়াও ইউনিক্সের ডিভাইসগুলি হ'ল ব্লক এবং চরিত্রের ডিভাইস। আপনি চর ডিভাইস থেকে পড়লে, আপনি স্বাক্ষরবিহীন অক্ষর / বাইটগুলির স্ট্রিম পাবেন।
imel96

বাইট স্ট্রিম অস্পষ্ট। অক্টেট স্ট্রিমটি নয়।
হরিণ হান্টার

ডেটা বহু স্তরে ব্যাখ্যা করা যায়। নীচে এটি কেবল অফ অফ বৈদ্যুতিক স্তরের একটি সিরিজ। খানিকটা উঁচুতে এটি বাইটের একটি অংশ, বা আপনি যেমন বলছেন, বাইট স্ট্রিম । এমনকি উচ্চতর আপনি কাঁচা ডেটা ব্যাখ্যা করতে শুরু করেন। বাইটগুলি বিভিন্ন উপায়ে (এনকোডিংগুলি) পাঠ্য হিসাবে ব্যাখ্যা করা যায়। পূর্ণসংখ্যার সংখ্যাগুলিও (বড় বা ছোট এডিয়ান)। আপনি এমনকি উপরে যেতে পারেন। আপনার একটি জিপ ফাইল রয়েছে। সেই জিপ ফাইলটি গতকাল থেকে আপনার ব্যাকআপ। ইত্যাদি। সমস্যাটি হ'ল সঠিক স্তরটি প্রায়শই অন্তর্নিহিত এবং পরিষ্কার হয় না এবং এটি বিভ্রান্তিকর হতে পারে।
স্পষ্টভাবে

উত্তর:


52

বাইট স্ট্রিমগুলিতে ভাল, বাইট রয়েছে। আসলে এটি যা ভেঙে গেছে, এটি 1 টি 0 এবং 0 এর সমন্বয়ে তৈরি 8 টি বিট। যদি এটি কোনও সংখ্যার প্রতিনিধিত্ব করে, তবে এটি 0 থেকে 255 পর্যন্ত কোনও সংখ্যক হবে (যা আমি যুক্ত করতে পারি, কোনও আইপি ঠিকানায় 4 নম্বর সর্বদা 0 থেকে 255 অবধি থাকে না কেন এটি কোনও কাকতালীয় ঘটনা নয়)। বাইট স্ট্রিমগুলি সাধারণত পরিশীলিত ইন্টারফেসগুলি বোঝায় যা একটি বৃত্তাকার বাফার ধরে রাখার জন্য অন্তর্নিহিত বেসিক বাইট অ্যারেটি লুকিয়ে রাখার জন্য হয় (আপনি বাফারটি পূরণ করুন এবং এটি খালি করার জন্য অপেক্ষা করুন, সেই সময়ে এটি আবার বাফারটি কেবল পূরণ করে)।

হেক কি প্রতিনিধিত্ব করে? ভাল, এটি কোনও পাঠ্য ফাইল বা কোনও চিত্র বা একটি লাইভ ভিডিও স্ট্রিম উপস্থাপন করতে পারে। এটা কি হয় সম্পূর্ণরূপে যারা পড়া হয় প্রেক্ষাপটে উপর নির্ভরশীল। হেক্স প্রতিনিধিত্ব একই জিনিস বলার আরেকটি উপায়, যদিও এটি কখনও কখনও সংখ্যার চেয়ে তাদের হেক্স উপস্থাপনার ক্ষেত্রে বাইটগুলি পরিচালনা করা আরও সুবিধাজনক তবে এটি একই জিনিস।

আপনি যখন কাঁচা ডেটা উল্লেখ করছেন, আপনি সাধারণত বাইট ডেটা উল্লেখ করছেন। "আমি একটি চিত্র ফাইল!" বলে কোনও ট্যাগ ছাড়াই ডেটা আসে! সাধারণত আপনি কেবল কাঁচা ডেটা নিয়েই ডিল করেন যখন আপনি কীভাবে ডেটা সামগ্রিকভাবে উপস্থাপন করেন তা যত্নশীল হন না। উদাহরণস্বরূপ, যদি আমি কোনও চিত্রকে তার কালো এবং সাদা সংস্করণে রূপান্তর করতে চাই, তবে আমি বলতে পারি যে কোনও চিত্রের কাঁচা ডেটা এবং প্রতি 3 বাইট পড়ার জন্য (যা আসলে লাল রঙের প্রতিনিধিত্ব, সবুজ বর্ণের উপস্থাপনা এবং উপস্থাপনা হবে) নীল রঙ), এর সংখ্যার মান যুক্ত করুন এবং 3 দ্বারা ভাগ করুন, তারপরে সেই মানটি 3 বার লিখুন। মূলত আমি যা করব তা হ'ল পিক্সেলের লাল, সবুজ এবং নীল মানকে গড় করা এবং সেখান থেকে ধূসর সমতুল্য পিক্সেল তৈরি করা। তবে, আপনি যখন "বাইট বাই বাই" এর স্তরে ডেটাতে অপারেশন করার কথা বলছেন, আপনি ডন '

অথবা, সম্ভবত আপনি কোনও ডাটাবেসে কোনও ফাইল সংরক্ষণ করতে ইচ্ছুক, তবে এটি আপনাকে একটি "ব্লাবা ডেটা" টাইপ করে "কাঁচা ডেটা" সন্নিবেশ করতে বলে। এর সহজ অর্থ হ'ল কোনও ফাইলের ডেটা একটি বৃহত বাইট অ্যারেতে রূপান্তর করা যা ডাটাবেস বুঝতে এবং পরিচালনা করতে পারে। আপনি দেখতে পাবেন যে আপনি যখন ডাটাবেস থেকে এই মানটি পুনরুদ্ধার করবেন, এটি প্রাথমিকভাবে একটি বড় বাইট অ্যারে হবে যখন আপনি শুরুতে ডাটাবেসটি শুরু করেছিলেন। যদি সেই ডেটা কোনও ফাইল ছিল, তবে আপনাকে, প্রোগ্রামারকে অবশ্যই সেই বাইট তথ্যটি পুনরায় ব্যাখ্যা করতে হবে যেন আপনি একবারে কোনও একটি বাইট ফাইল পড়ছেন।

যদি কেউ আপনাকে "4 বাইট ডেটা বিপরীতমুখী" করতে বলে তবে আমি ধরে নেব এটি সংখ্যার বিগ-এন্ডিয়ান বনাম সংক্ষিপ্ত-এন্ডিয়ান ব্যাখ্যাকে বোঝায়, যা সর্বাধিক বা কমপক্ষে উল্লেখযোগ্য বাইট দিয়ে শুরু করে সংখ্যাগুলি লিখে দেয়। কোনও সংখ্যা বড়-এন্ডিয়ান বা ছোট-এন্ডিয়ান হিসাবে উপস্থাপিত হয় তা বিবেচ্য নয়, কেবল সংখ্যাটি পড়া সমস্ত সিস্টেম এটি ধারাবাহিকভাবে ব্যাখ্যা করে।

এটি বলার অপেক্ষা রাখে না যে প্রকৃত সংখ্যা উপস্থাপনা (বা matter বিষয়টির জন্য হেক্স উপস্থাপনা) পরিবর্তন করা হয়েছে, কেবলমাত্র এই 4 বাইটটি যে ক্রমটিতে একটি নম্বর তৈরি করে তা উল্টানো উচিত। সুতরাং বলুন যে আপনার 0x01, 0x02, 0x03 এবং 0x04 রয়েছে। এগুলি বিপরীতে দেখতে আপনার পরিবর্তে 0x04, 0x03, 0x02, 0x01 থাকতে হবে have সিস্টেমটি সম্ভবত এই 4 বাইটগুলি বিপরীত ক্রমে পড়বে এবং যেহেতু আপনি ইতিমধ্যে এটিকে বিপরীত করেছেন, তাই মানটি কাঁচা ডেটাতে যা লক্ষ্য করা হয়েছিল তার মতোই ব্যাখ্যা করা হয়।

আমি আশা করি এটি ব্যাখ্যা করে!


সবকিছু ঠিক আছে ..! আপনি দয়া করে "কাঁচা ডেটা" পুনঃব্যবহারের উত্তরটি বিস্তারিতভাবে বর্ণনা করতে পারেন?
ব্যবহারকারী 2720323

@ ব্যবহারকারী 2720323 ঠিক আছে, আরও ভাল "কাঁচা ডেটা" ব্যাখ্যা করতে সংশোধিত। :)
নীল

একটি বিষয় মনে রাখবেন ... সমস্ত ডেটা কেবল বাইটের সংগ্রহ। এই বাইটগুলির অর্থ কোনও ধরণের মেটাডেটা (ফাইল এক্সটেনশন, ডাটাবেস ক্ষেত্র, ইত্যাদি) দ্বারা সংজ্ঞায়িত করা হয়। কোনও চিত্র ফাইলকে ASCII ফাইল এবং তদ্বিপরীত হিসাবে ব্যাখ্যা করা যেতে পারে। পাঠ্য বা চিত্রটি অর্থহীন হতে পারে তবে এটি এখনও সম্ভব। (ডার্প ... আমার পরবর্তী উত্তরগুলি পড়া উচিত ছিল)
ডেভ নয়

2
@ কেভিঙ্কলাইন দয়া করে সত্যটি উপলব্ধি করার চেষ্টা করুন যে আমি একটি ধারণা জানাতে চাইছি। আমার অগ্রাধিকার একটি সঠিক অ্যালগরিদম লেখার নয়। আপনি যদি আরও নিখুঁত হতে চেয়েছিলেন, তবে মানুষের চোখের ধারণা অনুসারে আপনি লাল সবুজ এবং নীল মানকে ওজন করতে পারবেন।
নীল

18

একটি বাইট কেবল তথ্যের একক - এটি যে কোনও কিছু হতে পারে। বাইট নিজে থেকে কিছু বোঝায় না, আপনাকে এর সাথে কিছুটা অর্থ সংযুক্ত করতে হবে।

সুতরাং, এটি প্রসারিত -

এটিতে কী বাইটস (হেক্স ডেটা) বা বাইনারি ডেটা বা কেবল ইংরাজী অক্ষর রয়েছে?

হেক্স ডেটা বাইনারি ডেটার সমান। এটি ডেটা প্রদর্শন করার এক অন্যরকম উপায়। উদাহরণস্বরূপ, 0x41 = 0b01000001 = 'এ' = 65 (দশমিক)। ইংরেজি অক্ষরগুলি কেবল এটির একটি উপসেট হবে।

যদি কেউ আমাকে "4 বাইট ডেটা বিপরীতমুখী" করতে বলে, তবে ডেটা হেক্স কোড বা বাইনারি কোড হ'ল আমি কী অনুমান করব?

যেহেতু হেক্স হ'ল ডেটার উপস্থাপনা তাই আপনি এটি সম্পর্কে কী ভাবেন তা বিবেচ্য নয়। আপনার যদি ডেটা থাকে তবে 0x65 0x66 0x67 0x68এটির বিপরীতে আপনি পাবেন 0x68 0x67 0x66 0x65। আপনি যদি এই ডেটাটিকে অক্ষরের দিক থেকে দেখছিলেন তবে আপনার কাছে প্রাথমিকভাবে এটি ছিল A B C Dতবে এখন আপনার কাছে রয়েছে D C B A

বাইট স্ট্রিমে ফিরে যান - এটি কেবলমাত্র ডেটার ক্রম। ডেটা ব্যবহার করার জন্য আপনাকে কী প্রতিনিধিত্ব করে তা জানতে হবে। আমরা যদি কোনও পাঠ্য ফাইলটি পড়ছি, আপনি ফাইলটি পড়ার সময় যে বাইট স্ট্রিমটি পাবেন তা কেবল কোনও ধরণের অক্ষর। একটি এক্সিকিউটেবল ফাইলের মধ্যে এটি মুদ্রিত অক্ষরগুলির একগুচ্ছ থাকবে, যে কারণে এটি বাইনারি ফাইল বলা হবে। স্পষ্টতই, কোনও পাঠ্য সম্পাদকে একটি এক্সিকিউটেবলকে খোলা সম্ভব, তবে এটি কার্যকর কিছু করে না।


1
+1 তবে লাইট বিটে বাইনারিটির উপর জোর দেওয়া যায়নি seems "বাইনারি ডেটা" প্রায়শই ছাপিয়ে যাওয়া অক্ষরগুলি ধারণ করে, তবে এটি "বাইনারি" বলে কারণ এটি বাইনারি সংখ্যার সমন্বয়ে গঠিত হয় না, কারণ এতে অপূরণীয় অক্ষর রয়েছে। আমি বুঝতে পারি যে আপনি "টেক্সট" তথ্য প্রিন্ট করার বিরোধিতা করে "বাইনারি" ব্যবহার করছেন তবে আমি মনে করি এটি আরও ওপরে বিভ্রান্ত হতে পারে।
কালেব

বিপরীত সংক্রান্ত আমার একটি প্রশ্ন রয়েছে .. আমার যদি কোনও ফাইলের একটি পূর্ণসংখ্যা (32 বিট) 325487 থাকে তবে আমি কীভাবে এই 4 বাইট পূর্ণসংখ্যাকে বিপরীত করতে পারি? একইভাবে আমার একটি শব্দ রয়েছে ("হাই আপনি কেমন আছেন"), প্রতিটি অক্ষরকে বাইট হিসাবে ধরে ধরে এই স্ট্রিংটি কীভাবে বিপরীত করবেন।
ব্যবহারকারী 2720323

@ user2720323 int reverseX = ((x & 0xFF000000) >> 24) + ((x & 0x00FF0000) >> 8) + ((x & 0x0000FF00) << 8) + ((x & 0x000000FF) << 24); এটি আক্ষরিকভাবে প্রতিটি বাইট নেয়, এটিকে সঠিক অবস্থানে স্থানান্তর করে এবং অন্যদের সাথে একত্রিত হয়।
নীল

2

বাইট স্ট্রিম হ'ল বাইটের ক্রমযুক্ত ক্রম। একটি প্রথম বাইট আছে, যার কোনও পূর্বসূরি নেই। এর উত্তরসূরি হ'ল দ্বিতীয় বাইট, ইত্যাদি। আজকাল, আটটি বিট সমন্বিত একটি বাইটকে ব্যাপকভাবে বোঝা যায়। আমরা যদি আরও সুনির্দিষ্ট হতে চাই তবে আমরা অক্টেট স্ট্রিম এবং অক্টেট শব্দটি ব্যবহার করি । বাইটস সহ এখনও এমন কম্পিউটার রয়েছে যা আট বিট প্রস্থ নয়।

হেক্সাডেসিমাল সংখ্যা লেখার একটি উপায়, এবং বাইনারি ডেটার জন্য একটি মুদ্রিত উপস্থাপনা হিসাবে কাজ করে। হেক্সাডেসিমাল আসলে পাঠ্য। উদাহরণস্বরূপ, হেক্সাডেসিমাল মানটি FEবাইট উপস্থাপন করতে পারে: 11111110দশমিক মান রয়েছে এমন বিট 255। তবে FEপ্রকৃতপক্ষে অক্ষরগুলি সমন্বিত একটি অক্ষরের স্ট্রিং Fএবং এর জন্য US-ASCII বা ISO-646 অক্ষর সেটটিতে দুটি বাইট Eপ্রয়োজন ! এই দুটি বাইট যা হয় , এবং 254 মান সহ একক বাইট হ'ল এটি একটি মুদ্রিত স্বরলিপি হিসাবে উপস্থাপন করেFE FE

কোনও যোগাযোগের চ্যানেল, বা ফাইল হ্যান্ডেল বা এই জাতীয় কোনও ডিভাইস যদি বাইট স্ট্রিম বহন করে হিসাবে বর্ণনা করা হয় এবং অন্য কোনও তথ্য না দেওয়া হয় তবে এটির প্রায় নিশ্চয়ই এই অর্থ হয় না যে বাইটগুলি হেক্সাডেসিমাল পাঠ্য হিসাবে উপস্থাপিত করা হয়, যাতে প্রবাহের প্রতিটি বিমূর্ত বাইট প্রয়োজন দুটি শারীরিক বাইট

এবং কাঁচা তথ্য কেবল বিটগুলি বোঝায় যা কেবল "বিটের অ্যারে" এর বাইরে কোনও কাঠামো আছে বলে ব্যাখ্যা করা হয় না। কাঁচা তথ্য সাধারণত একটি কাঠামো থাকে এবং কিছু উপস্থাপন করে, কিন্তু আমরা যখন এটি কাঁচা তথ্য হিসাবে দেখছি তখন আমরা হয় মুহূর্তটির জন্য ব্যাখ্যাটিকে উপেক্ষা করছি (উদাহরণস্বরূপ, আমরা কোনও ডেটা টাইপের কাঁচা উপস্থাপনাটির নিখুঁততা যাচাই করতে দেখছি বিট স্তর বিশদে) বা ব্যাখ্যাটি উপলভ্য নয় (আমাদের কাছে কিছু ডেটা রয়েছে তবে আমরা ডেটাটির গঠন এবং এটি কী উপস্থাপন করে তা বুঝতে পারি না)।


পিডিপি -10 এর পরিবর্তনশীল আকারের বাইটগুলি মোকাবেলার জন্য নির্দেশনা ছিল। সর্বাধিক সাধারণ ছিল সাত বিট ASCII, তার পরে ছয়-বিট অক্ষর।
কেভিন cline

0

একটি বাইট 8 বিট হয়। কিছুটা 0 বা 1। "কাঁচা ডেটা" হ'ল একের পর এক বাইটের প্রবাহ। একটি বাইট স্ট্রিম ফাইল, নেটওয়ার্ক সংযোগ, সিরিয়ালযুক্ত বস্তু, একটি এলোমেলো সংখ্যা জেনারেটর ইত্যাদি থেকে আসতে পারে

  • বাইট প্রদর্শন করার বিভিন্ন উপায় রয়েছে: বাইনারি (01110110), হেক্স = হেক্সিডিসিমাল (7 সি), অক্টাল (0271), বা দশমিক (215)। সব ক্ষেত্রে সর্বাধিক মান 255 (বেস 10)।

  • কখনও কখনও বাইটসকে অক্ষর হিসাবে বরাদ্দ করা হয়, যেমন এসসিআই। ইউনিক্স কমান্ড লাইনে "ascii" টাইপ করুন এবং আপনি একটি বড় টেবিল পাবেন যা সম্পর্কিত চরিত্রে বাইট ভেলস 0-255 বা (0-FF hex) মানচিত্র করে। উদাহরণস্বরূপ, স্থান x20 এবং "A" x40। নোট করুন যে কিছু বাইট মানচিত্রগুলি নিয়ন্ত্রণ করতে মানচিত্র করে এবং প্রিন্টযোগ্য হয় না। কিন্তু বাইটগুলি নিজেরাই অক্ষর নয় - এগুলি কেবল বিটের একটি বান্ডিল। একটি সংখ্যা.

  • "রিভার্স 4 বাইট" কিছু বাইট নিতে হবে 123 42 231 0 এবং আদেশটি উল্টাতে হবে - 0 231 42 123. বাইট স্টিমে প্রয়োগ করা হয়েছিল, আমি সম্ভবত 4 বাইট পড়ব, তাদের বিপরীত করব, পরের 4 বাইটগুলি পড়ব ইত্যাদি। ।

(বিটিডব্লিউটি সমস্যাটি প্রাসঙ্গিক, কারণ আপনি যদি বাইসের হিসাবে 255 এর চেয়ে বড় সংখ্যক প্রতিনিধিত্ব করতে চান তবে আপনার একাধিক বাইট ব্যবহার করা প্রয়োজন But তবে প্রশ্নটি হল, "বৃহত্তম" বাইটটি প্রথমে আসে কি শেষ? বড় এন্ডিয়ান বা সামান্য এন্ডিয়ান - এটি কাঁচা বাইট স্ট্রিমের বাইটগুলির চারপাশে ঘুঘু করা কেন দরকারী তা নিয়ে আরও পটভূমির সন্ধান করুন))

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.