TechBord Logo
TechBord detail

انددینی (Endianness) چیست؟

Endianness یک اصطلاح علوم کامپیوتر (Computer Science) است که نحوه ذخیره داده (Data) را توصیف می کند. به طور خاص، مشخص می کند که کدام انتهای یک چند بایت نوع داده (Data Type) دارای مهم ترین مقادیر است. دو نوع endianness، big-endian و little-endian هستند.

Big-Endian

Big-Endian رایج ترین روش برای ذخیره داده های دودویی (Binary) است. مهم‌ترین (یا بزرگترین) مقدار را در ابتدا قرار می‌دهد و پس از آن مقادیر کمتر معنی‌دار را قرار می‌دهد. برای مثال، نمایش بیگ اندین از عدد صحیح (Integer) 123 ابتدا مقدار صدها (1) و سپس مقدار دهها (2)، سپس مقدار یکها (3) یا [123] را قرار می دهد.

Little-Endian

Little-Endian ابتدا کمترین مقدار را ذخیره می کند و سپس مقادیر با اهمیت فزاینده ای را ذخیره می کند. به عنوان مثال، عدد 123 در نماد اندین کوچک [321] است. متن رشته (String) "ABC" به صورت [CBA] نشان داده می شود.

تبدیل اندیان

در بیشتر موارد، توسعه دهنده (Developer) لازم نیست endianness را مشخص کنید زیرا کامپایلر (Compiler) نوع صحیح داده را برای یک سکو (Platform) خاص تولید می کند. با این حال، ممکن است یک برنامه نیاز به پردازش ورودی (Input) خارجی داشته باشد، مانند فرمت فایل (File Format) که داده‌ها را با پایانی متفاوت ذخیره می‌کند. در این مورد، داده ها باید از کمی به اندین بزرگ یا بالعکس تبدیل شوند.

تبدیل اندیان به سادگی معکوس کردن داده ها نیست. بایت (Byte)، به جای بیت (Bit)، باید معکوس شود. به عبارت دیگر، هر بایت (یا بلوک هشت بیتی) باید ثابت بماند، اما ترتیب بایت ها تغییر می کند. این را می توان با استفاده از هگزادسیمال (Hexadecimal) یا نمایش دودویی داده ها توضیح داد.

به عنوان مثال، عدد صحیح 41,394 در نماد بزرگ به صورت:

هگزادسیمال نشان داده می شود: باینری A1B2: 1010000110110010

تبدیل این داده‌ها به کمی اندین، داده‌ها را معکوس نمی‌کند، بلکه تک تک بایت‌های درون داده را معکوس می‌کند. هگزادسیمال از دو رقم برای نشان دادن هر بایت استفاده می کند - [A1][B2]، در حالی که باینری از هشت رقم استفاده می کند - [10100001][10110010].

بنابراین، نمایش اندین کوچک 41,394 برابر است با:

هگزادسیمال: B2A1 باینری: 1011001010100001

توجه: برخی از پردازنده (Processor) می‌توانند داده‌ها را به‌عنوان big-endian یا small-endian بدون نیاز به تبدیل واکشی کنند. به این می‌گویند دسترسی به داده‌های bi-endian.

تعریف اصطلاح انددینی (Endianness) توسط تک بورد

تعریف انددینی (Endianness) در این صفحه یک تعریف پایه نگاشته شده توسط تک بورد است. اگر مایل به ارجاع به این صفحه یا استناد به این تعریف هستید، با شرط درج لینک به این صفحه می توانید از این محتوا استفاده کنید.

هدف تک بورد توضیح اصطلاحات کامپیوتری به روشی است که به راحتی قابل درک باشد. ما برای سادگی و دقت با هر تعریفی که منتشر می کنیم تلاش می کنیم. اگر بازخوردی درباره تعریف انددینی (Endianness) دارید یا می‌خواهید یک اصطلاح فنی جدید پیشنهاد کنید، لطفاً با ما تماس بگیرید.

آیا می خواهید اصطلاحات فنی بیشتری یاد بگیرید؟ در خبرنامه روزانه یا هفتگی مشترک شوید و شرایط و آزمون های ویژه را در ایمیل خود تحویل بگیرید.