برنامه نویس پایتون و دوستدار سیستم های توزیع شده، دانش داده ها و زبان عبری http://learnhebrew.ir
مفاهیم Little Endian و Big Endian
در رایانه ها مفهوم Endianness به روش هایی برای نگهداری داده های چند بایتی مانند int و float گفته می شود که از سیستم عاملی به دیگری تفاوت دارد. توجه کنید گونه های داده (Data Type)، اندازه های گوناگونی از فضای آدرس را در بر می گیرند. برای نمونه int و float چهار بایت یا 32 بیت و short int دو بایت یا 16 بیت و char یک بایت یا 8 بیت را برای خود بر می دارند.
هر 8 بیت برابر با یک بایت و هر 16 بیت برابر با دو بایت یک Word است
زمانی که در هر زبان برنامه نویسی (در اینجا پایتون) متغیری مانند var = 1025 را می سازید، مفسر پایتون یا کامپایلر سی پلاس پلاس، بخشی از فضای آدرس حافطه اصلی (RAM) را به آن می دهد. برای نمونه در اینجا چون var مقدار شماره صحیح 1025 را گرفته، پس باید 4 بایت از حافظه اصلی به آن داده شود. همچنین خود داده در حافظه نگهداری نمی شود، بلکه ریختِ (شکل یا صورت) دودویی آن در حافظه نگهداری خواهد شد.
توجه کنید می توانیم حافظه اصلی را به مانند یک آرایه بزرگ از بایت ها (توالی 8 بیتی) بدانیم. برای دسترسی به هر خانه یا سلول حافظه، شماره آدرس که شماره ای هگزا دسیمال است را به کار می بریم. بنابراین مفهوم Endianness به مرتب سازی بایت ها (یا توالی از بیت ها) در ریخت یا نمایش دودویی از یک داده گفته می شود. این مفهوم به دو روش Little Endian و Big Endian دسته بندی می شود.
هر خانه یا سلول حافظه یک 8 بیت یا یک بایت و دارای یک شماره آدرس است.
شکل های زیر فضای آدرس (Address Space) و روش های Little Endian و Big Endian را نشان می دهند و همانگونه که می بینید نخستین شماره هگزا دسیمال آدرس، 0x00000000 در پایین آرایه حافظه است. همچنین شماره زیر ریخت دودویی شماره 1025 است که شامل 4 تا 8 بیتی است.
00000001 00000000 00000100 00000000 00000000
سمت راست ترین بایت، 00000001 همان LSB (یا ) و سمت چپ ترین بایت همان MSB (یا ) هستند. بر با پایه نخستین شکل زیر، در روش Little Endian، بیت LSB، نخست در خانه حافظه (با شماره آدرس کوچکتر) نگهداری می شود. ولی بر پایه دومین شکل زیر، در روش Big Endian، بیت MSB (سمت چپ ترین) نخست در حافظه (با شماره آدرس کوچکتر) نگهداری می شود.
توجه کنید بی توجه به اینکه سیستم عامل کدام روش را به کار می برد، این هیچ تاثیری بر روی داده دودویی ندارد بلکه این دو روش چگونگی نگهداری داده را نشان می دهند. دو سیستم عامل ویندوز و لینوکس شیوه Little Endian و سولاریس شیوه Big Endian را به کار می برند. شکل زیر چکیده ای از این دو روش را نشان می دهد.
مطلبی دیگر از این انتشارات
چالش برنامه نویسی php : روز اول
مطلبی دیگر از این انتشارات
صفر تا صد مسیر تبدیل شدن به یک طراح سایت
مطلبی دیگر از این انتشارات
هوش مصنوعی و زبان های برنامه نویسی (قسمت دوم)