الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ماهو الEndianness و ماهو ال Big Endian و little Endian

مغلق
بدأه Abdullah.Alshammeri في 20 يوليو 2007 · 3 رد · 1,232 مشاهدة · في لغة C و ++C
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم .

أقرأ كثيرا عن ال Endian ,,

http://en.wikipedia.org/wiki/Endianness

http://betterexplained.com/articles/unders...ian-byte-order/

لم أفهم بالظبط الفكرة منه .. يبدو لي أن له علاقة بتحويل البيانات ونقل البايتات .

فسؤالي هو ::

ماذا تعني ال Endianness و مافائدتها ومتى استخدمها وماهي تطبيقاتها .

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#2

السلام عليكم

الغاية من الموضوع هو تيسير التواصل بين الحواسيب بمختلف أنواعها. أقصد هنا بأنواعها أي إختلافها في التعامل مع البيانات من قراءة في الذاكرة وكتابة وغير ذلك. فهناك الحواسيب او بالأحرى نظم التشغيل التي تكتب من اليمين الى اليسار وأخرى العكس. عند قراءة بايت واحد أو كتابته في الذاكرة فكلاهما يشترك في نفس المبدأ ولا يوجد إختلاف أما إذا كان الأمر يتعلق بكمية أكبر من البيانات فهنا يكمن الفرق.

1.Big endian machine يخزن البيانات بإعتماد مبدأ big-endأولا. أي البايت الأول بمعنى صاحب الأصغر عنوان في الذاكرة هو الأكبر

2. Little endian machine يخزن البيانات بمبدأ little-end أولا. أي أول بايت هو الأصغر

#include "stdafx.h"

		   typedef unsigned char byte;

		   void _tmain(int argc, _TCHAR* argv[])
			{
			 byte W=0x12;
			 byte Y=0x34;
			 short *Big_end_machine, Little_end_machine;

			 Big_end_machine = (short*)(256*W + Y);
			 Little_end_machine =(short*)(256*Y + W);
			}

نفترض أن لدينا متغير من نوع short. أي يحتوي إثنان بايت. ونريد وضع القيمتانW,Y المعرفان سابقا في هذا المتغير.W موجود في العنوان 0 من الذاكرة والآخر العنوان1

في الBig end machine يعتبر المتغرW ذى قيمة أكبر لذلك النتيجة تعادل

256*W+Y

والعكس بالنسبة للآخر

وهنا يكمن الفرق

#3

جزاك الله خير ’’

يعني .. فهمت عدة نقاط . وتوضحت بعض الامور الاخرى ,

- لكن هل هناك فائدة لي كمبرمج أن اتعلم مثل هذه الامور ؟

- أيضا , أي النظامين يستخدمها الويندوز ( ال Big endian machine او ال little ) .

تم تعديل هذه المشاركة بواسطة الشمري في 22 يوليو 2007 في 05:52

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#4

السلام عليكم :)

الـ PC يستخدم Little endian ,معالجات x86 جميعها من نوع Little-endian, مسألة الـ endianness تحددها طريقة عمل المعالج, وكما مذكور في ويكيبيديا معالجات Motorola ومعالج PowerPC هما Big-endian.

:D

تم تعديل هذه المشاركة بواسطة SandHawk في 22 يوليو 2007 في 07:13

هذا الموضوع مغلق.

مواضيع مشابهة