علت استفاده از big-endian و little-endian

سلام.
خیلیوقت پیش درمورد لایبرری عکس کلوژر سوال پرسیده بودم. نتیجه این شد که برم از لایبرریهایی که برای java یا زبانهای دیگه هستن استفاده کنم.
ولی اصلا ازشون راضی نیستم. امکانات خیلی زیادی که میتونم توی #clojure داشته باشم رو ازم گرفتن. دیتاتایپی که بهم میدن، آبجکت جاوا هست، نه دیتاتایپهای کلوژر و تقریبا مطمئنم اگه مثلا کد رنگ پیکسلها توی vector ذخیره شده باشه، سرعت خیلی بالاتری میتونم داشته باشم (به خاطر 32 branching factor) و حتی میشه برای خیلی‌کارها از core.async استفاده کرد.

تصمیم گرفتم یه کم مطالعه کنم ببینم میتونم یه لایبرری عکس خودم بسازم یا نه.
توی مطالعه درمورد فرمت‌های مختلف عکس، به یه مساله‌ای رسیدم.
بعضی فرمتها، byteها رو به شکل little-endian و برخی دیگه به شکل big-endian ذخیره میکنن.

کسی میدونه چرا؟ آیا big-endian برای همه‌چیز معقولتر و راحتتر نیست؟ چه کاریه همه چیزو reverse کنیم؟ (روی صحبتم با little-endian هست)

من نمی دونم چرای برای فرمت عکس باید اینکار رو بکنن. اما در کل دلیلش معماری CPU های مختلف هست. مثلا x86 little endian هست. و حس می کنم برای اینکه بتونن روی یه معماری خاص عملکرد بهتری داشته باشند این کار رو انجام دادن

1 Like