Foundationপ্রথম নীতি থেকে
LEVEL 1 · How Computers Represent Information

Endianness

এন্ডিয়ানেস

একটা multi-byte value-র byte-গুলো memory address-এ কোন ক্রমে সাজে তার convention — big-endian-এ সবচেয়ে গুরুত্বপূর্ণ byte আগে, little-endian-এ পরে। কোনোটাই 'সঠিক' না, শুধু আলাদা চুক্তি।

also: byte order, little-endian, big-endian, network byte order

0x12345678 address 1000-এ রাখলে big-endian দেয় 12 34 56 78, little-endian দেয় 78 56 34 12 — একই সংখ্যা, উল্টো byte layout।

নাম কোথা থেকে: Danny Cohen-এর 1980 memo “On Holy Wars and a Plea for Peace” — Gulliver’s Travels-এর Lilliputian-রা ডিমের কোন প্রান্ত (big end না little end) ভাঙা উচিত তা নিয়ে যুদ্ধ করত।

কে কোনটা: x86/x86-64 little-endian। ARM bi-endian (উভয়ই সমর্থন করে, বাস্তবে little মোডে চলে)। TCP/IP header সবসময় big-endian — একে বলে “network byte order”, তাই htonl/ntohl

FormatByte order
TIFF (II/MM magic)ফাইলে ঘোষিত
BMP, WAV (RIFF)little-endian
PNG, Java .classbig-endian
UTF-16 BOM (FF FE / FE FF)ফাইলে ঘোষিত

যা endianness-এর অধীন না: single-byte encoding (ASCII, UTF-8) — প্রতিটা unit ১ byte বলে সাজানোর প্রশ্নই ওঠে না। যা অধীন: যেকোনো multi-byte value — integer, IEEE 754 float, UTF-16/32 code unit।

Little-endian-এর বাস্তব সুবিধা: একই address থেকে ছোট type হিসেবে পড়লে সরাসরি নিচের byte-টা পাওয়া যায়, কোনো offset হিসাব ছাড়াই।