Cover
Börja nu gratis CHAP3_ Information representation.pdf
Summary
# تمثيل البيانات الثنائية
يستكشف هذا الموضوع كيفية تمثيل البيانات في أجهزة الكمبيوتر باستخدام تنسيقات ثنائية مختلفة، مع التركيز على الترميز الثنائي النقي، ورمز جراي، ورمز BCD، ورمز الفائض بثلاثة.
### 1.1 مقدمة في الترميز الثنائي
في الحاسوب، يتم تمثيل جميع البيانات بشكل عام في شكل ثنائي، وهو نظام يعتمد على حالتين: 1 (وجود تيار) و 0 (عدم وجود تيار). يتطلب هذا التحويل البيانات من شكلها المعتاد إلى الشكل الثنائي القابل للاستخدام بواسطة الكمبيوتر [2](#page=2).
### 1.2 أنواع الترميز الثنائي
#### 1.2.1 الترميز الثنائي النقي
الترميز الثنائي النقي هو التمثيل الثنائي الذي ينتج مباشرة عن مبدأ الترقيم العام، ويُستخدم بشكل طبيعي في الأنظمة الرقمية مثل أجهزة الكمبيوتر. يعرض الجدول التالي (جدول 3.1) الترميز الثنائي النقي لكلمة مكونة من 4 بتات (A3 A2 A1 A0) [2](#page=2):
| القيمة العشرية | A3 | A2 | A1 | A0 |
| :------------: | :-: | :-: | :-: | :-: |
| 0 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 |
| 2 | 0 | 0 | 1 | 0 |
| 3 | 0 | 0 | 1 | 1 |
| 4 | 0 | 1 | 0 | 0 |
| 5 | 0 | 1 | 0 | 1 |
| 6 | 0 | 1 | 1 | 0 |
| 7 | 0 | 1 | 1 | 1 |
| 8 | 1 | 0 | 0 | 0 |
| 9 | 1 | 0 | 0 | 1 |
| 10 | 1 | 0 | 1 | 0 |
| 11 | 1 | 0 | 1 | 1 |
| 12 | 1 | 1 | 0 | 0 |
| 13 | 1 | 1 | 0 | 1 |
| 14 | 1 | 1 | 1 | 0 |
| 15 | 1 | 1 | 1 | 1 |
**جدول 3.1: الترميز الثنائي النقي** [2](#page=2).
#### 1.2.2 رمز جراي (الترميز الثنائي المعكوس)
تم تطوير رمز جراي لتجنب مشاكل الانتقال بين الكلمات المتتالية في الترتيب التسلسلي، حيث يتغير بت واحد فقط بين كلمتين متتاليتين أو متجاورتين. هذا الرمز دوري أيضاً. يعرض الجدول التالي (جدول 3.2) مثالاً لرمز جراي المكون من 4 بتات [2](#page=2) [3](#page=3):
| القيمة العشرية | رمز جراي | القيمة العشرية | رمز جراي |
| :------------: | :-------: | :------------: | :-------: |
| 0 | 0000 | 8 | 1100 |
| 1 | 0001 | 9 | 1101 |
| 2 | 0011 | 10 | 1111 |
| 3 | 0010 | 11 | 1110 |
| 4 | 0110 | 12 | 1010 |
| 5 | 0111 | 13 | 1011 |
| 6 | 0101 | 14 | 1001 |
| 7 | 0100 | 15 | 1000 |
**جدول 3.2: مثال لرمز جراي** [3](#page=3).
> **Example:** للحصول على رمز جراي من الترميز الثنائي على 4 بتات:
>
> Binary: 0 0 1 0 0 1 1 1
> Gray: 0 0 1 1 0 1 0 0
>
> للحصول على رمز جراي من الترميز الثنائي:
> - يبقى البت الأول كما هو.
> - للحصول على البتات الأخرى، يتم جمع كل بت مع البت السابق له.
> - إذا كانت نتيجة الجمع '10'، يتم الاحتفاظ بالـ '0' وتجاهل الـ '1' [3](#page=3).
#### 1.2.3 رمز BCD (Binary Coded Decimal)
استُخدم رمز BCD بشكل أساسي في الآلات الحاسبة المبكرة، ولا يزال يُستخدم في بعض الأنظمة التي تعرض معلومات رقمية للمستخدم أو في الأنظمة البسيطة التي تتعامل مع الأموال. يقوم رمز BCD بتشفير الرقم المطلوب تمثيله بطريقة مباشرة، حيث يتم تشفير كل خانة عشرية على حدة باستخدام 4 بتات. لا تُستخدم الاحتمالات الثنائية من 10 إلى 15 في هذا الترميز. يعرض الجدول التالي (جدول 3.3) رمز BCD [3](#page=3):
| العشرية | BCD |
| :------: | :--: |
| 0 | 0000 |
| 1 | 0001 |
| 2 | 0010 |
| 3 | 0011 |
| 4 | 0100 |
| 5 | 0101 |
| 6 | 0110 |
| 7 | 0111 |
| 8 | 1000 |
| 9 | 1001 |
**جدول 3.3: رمز BCD** [3](#page=3).
> **Example:** تمثيل الرقم 10 باستخدام رمز BCD :
> 8 6 3
> 1000 0110 0011
> 10 = (1000 0110 0011)BCD [4](#page=4) .
#### 1.2.4 رمز الفائض بثلاثة (Excess-3 code)
في هذا الترميز، يتم تشفير كل خانة عشرية بشكل منفصل عن طريق إضافة ثلاثة إلى مكافئها الثنائي. يعرض الجدول التالي (جدول 3.4) رمز الفائض بثلاثة [3](#page=3) [4](#page=4).
**جدول 3.4: رمز الفائض بثلاثة** [4](#page=4).
(ملاحظة: الجدول المحدد لرمز الفائض بثلاثة غير موجود في المحتوى المقدم، ولكن تم ذكر آلية الترميز).
---
# تمثيل الأحرف
يناقش هذا القسم كيفية تمثيل الأحرف رقميًا داخل أجهزة الكمبيوتر، مع التركيز على أنظمة الترميز الشائعة مثل EBCDIC و ASCII و UTF [5](#page=5).
### 2.1 مبادئ تمثيل الأحرف
لكي تتمكن أجهزة الكمبيوتر من معالجة الأحرف، يجب تمثيلها رقميًا باستخدام وحدات تخزين البيانات (البتات). يتم تحقيق ذلك عن طريق تعيين رمز رقمي فريد لكل حرف [5](#page=5).
### 2.2 أنظمة ترميز الأحرف الشائعة
#### 2.2.1 كود EBCDIC (Extended Binary Coded Decimal Interchange Code)
* **التعريف:** هو نظام ترميز مكون من 8 بتات، ابتكرته شركة IBM ليكون امتدادًا لنظام BCD الثنائي المشفر عشريًا [5](#page=5).
* **الاستخدام:** تستخدمه جميع أجهزة وحواسيب IBM [5](#page=5).
* **السعة:** بفضل كونه مكونًا من 8 بتات، يمكنه استيعاب 256 حرفًا مختلفًا [5](#page=5).
#### 2.2.2 كود ASCII (American Standard Code for Information Interchange)
* **التعريف:** هو نظام ترميز تم تطويره في الستينيات بهدف تبادل البيانات بين الأجهزة الطرفية وأجهزة الكمبيوتر [6](#page=6).
* **الحجم:** يتطلب 7 بتات لتمثيل 128 تركيبة مختلفة [6](#page=6).
* **الترميز:** يتم ترميز كل حرف في بايت واحد (8 بتات) باستخدام رمزين سداسي عشريين. يمثل العمود الرمز السداسي العشري الأكثر أهمية (Most Significant)، بينما يمثل الصف الرمز السداسي العشري الأقل أهمية (Least Significant) [6](#page=6).
* **المحتوى:** يشمل الأرقام، وحروف الأبجدية اللاتينية (الكبيرة والصغيرة)، وبعض علامات الترقيم [6](#page=6).
> **Tip:** فهم كيفية تقسيم رموز ASCII إلى مكونات ذات أهمية عالية ومنخفضة يساعد في قراءة جداول الترميز بشكل فعال.
#### 2.2.3 UTF (Unicode Transformation Format)
* **التعريف:** هو نظام ترميز يستخدم أطوالًا متغيرة للتمثيل، حيث يمكن ترميز كل حرف على بايت واحد، أو بايتين، أو ثلاثة بايتات [7](#page=7).
* **التوافقية مع ASCII:**
* جميع الأحرف الموجودة في ترميز ASCII يتم ترميزها في UTF باستخدام بايت واحد وقيمة مطابقة لقيمتها في ASCII [7](#page=7).
* إذا احتوى بايت على قيمة أكبر من 127، فهذا يشير إلى أن الحرف يتكون من بايتين أو ثلاثة بايتات [7](#page=7).
* يتم تصميم UTF بطريقة تضمن أن جميع هذه البايتات الإضافية تحتوي على رموز قيمتها أكبر من 127 [7](#page=7).
* **الميزة:** تضمن هذه الآلية التوافقية مع ASCII للأمام والخلف، مما يسهل عملية الانتقال واستخدام الأنظمة المختلفة [7](#page=7).
> **Tip:** تم تصميم UTF لضمان التوافق مع ASCII، وهذا يجعله خيارًا قويًا لتمثيل مجموعة واسعة من الأحرف مع الحفاظ على إمكانية التشغيل البيني مع الأنظمة القديمة.
---
# تمثيل الأعداد الصحيحة
يتناول هذا الموضوع طرق تمثيل الأعداد الصحيحة، بما في ذلك الأعداد غير الموقعة، والأعداد الصحيحة ذات الإشارة (القيمة المطلقة، مكمل الواحد، ومكمل الاثنين)، مع شرح لكيفية عمل كل منها.
### 3.1 أنواع الأعداد الصحيحة
تنقسم الأعداد الصحيحة إلى نوعين رئيسيين:
* الأعداد الصحيحة غير الموقعة (موجبة فقط) [7](#page=7).
* الأعداد الصحيحة ذات الإشارة (موجبة أو سالبة) [7](#page=7).
### 3.2 تمثيل الأعداد الصحيحة غير الموقعة (Natural numbers)
الأعداد الطبيعية هي الأعداد الصحيحة الموجبة أو الصفر. يعتمد عدد البتات المستخدم لتمثيل عدد طبيعي على النطاق المطلوب للأرقام. على سبيل المثال، لترميز الأعداد الطبيعية بين 0 و 255، نحتاج إلى 8 بتات (بايت واحد) لأن $2^8 = 256$ [8](#page=8).
بشكل عام، يمكن استخدام ترميز $n$ بت لتمثيل الأعداد الطبيعية بين 0 و $(2^n - 1)$. لتمثيل عدد طبيعي، يتم وضع كل بت في الخانة الثنائية المقابلة لوزنه الثنائي من اليمين إلى اليسار، مع ملء البتات غير المستخدمة بالأصفار [8](#page=8).
> **Tip:** يعد فهم العلاقة بين عدد البتات ونطاق الأعداد غير الموقعة أمرًا أساسيًا لتخصيص الذاكرة بكفاءة.
### 3.3 تمثيل الأعداد الصحيحة ذات الإشارة
هناك ثلاث طرق شائعة لتمثيل الأعداد الصحيحة السالبة [7](#page=7):
1. القيمة المطلقة مع الإشارة (Sign/Absolute value) [8](#page=8).
2. مكمل الواحد (1's complement) [8](#page=8).
3. مكمل الاثنين (2's complement) [8](#page=8).
#### 3.3.1 تمثيل الإشارة والقيمة المطلقة (Sign and Absolute Value)
في هذا التمثيل، يتم تخصيص بت واحد، وهو الأكثر أهمية (Most Significant Bit - MSB)، لتمثيل الإشارة. القيمة 0 تمثل الإشارة الموجبة (+) والقيمة 1 تمثل الإشارة السالبة (-) [8](#page=8).
* **نطاق القيم:** بالنسبة لكلمة مكونة من $n$ بت، يتراوح نطاق القيم الممكنة من $-(2^{n-1}-1)$ إلى $+(2^{n-1}-1)$ [8](#page=8).
* **تمثيل الصفر:** يوجد تمثيلان محتملان للقيمة صفر (00000000 للإشارة الموجبة و 10000000 للإشارة السالبة في حالة 8 بت) [8](#page=8).
> **Example:**
> لتمثيل العدد 26 باستخدام 8 بتات:
> * $+26$: `0 0011010` (حيث 0 هو بت الإشارة الموجبة، و `0011010` هو تمثيل 26) [8](#page=8).
> * $-26$: `1 0011010` (حيث 1 هو بت الإشارة السالبة، و `0011010` هو تمثيل 26) [8](#page=8).
#### 3.3.2 تمثيل مكمل الواحد (1's Complement)
في ترميز مكمل الواحد، يتم الحصول على التمثيل السالب للعدد عن طريق عكس جميع بتات التمثيل الثنائي للعدد الموجب (تسمى عملية المكمل) [8](#page=8).
* **نطاق القيم:** باستخدام كلمة مكونة من $n$ بت، يمكن تمثيل القيم من $-(2^{n-1}-1)$ إلى $+(2^{n-1}-1)$ [8](#page=8).
* **تمثيل الصفر:** يوجد تمثيلان محتملان للقيمة صفر (00000000 و 11111111 في حالة 8 بت) [8](#page=8).
> **Example:**
> لتحويل العدد $(-26)_{10}$ إلى مكمل الواحد باستخدام 8 بتات:
> 1. التمثيل الموجب للعدد 26 هو: $(+26)_{10} = _{10}$ (مفترض أنه في صيغة مكمل الواحد) [8](#page=8).
> 2. عكس جميع البتات (المكمل): $ _{10}$ [8](#page=8).
> إذن، $(-26)_{10}$ بصيغة مكمل الواحد هو `11100101` [8](#page=8).
#### 3.3.3 تمثيل مكمل الاثنين (2's Complement)
في ترميز مكمل الاثنين، يتم الحصول على التمثيل السالب للعدد عن طريق أخذ مكمل الواحد للعدد ثم إضافة 1 إليه، دون الاحتفاظ بالترحيل (carry) الناتج عن عملية الإضافة [9](#page=9).
* **نطاق القيم:** باستخدام كلمة مكونة من $n$ بت، يمكن تمثيل القيم من $-(2^{n-1})$ إلى $+(2^{n-1}-1)$ [9](#page=9).
* **تمثيل الصفر:** يوجد تمثيل واحد فقط للقيمة صفر (00000000 في حالة 8 بت) [9](#page=9).
> **Tip:** يعتبر ترميز مكمل الاثنين هو الأكثر استخدامًا في الأنظمة الحاسوبية نظرًا لبساطة إجراء العمليات الحسابية عليه (خاصة الطرح) دون الحاجة إلى معالجة منفصلة للإشارات [9](#page=9).
> **Example:**
> لتحويل العدد $(-26)_{10}$ إلى مكمل الاثنين باستخدام 8 بتات:
> 1. التمثيل الموجب للعدد 26 هو: $+26 = 00011010$ [9](#page=9).
> 2. عكس جميع البتات (مكمل الواحد): $11100101$ [9](#page=9).
> 3. إضافة 1: $11100101 + 1 = 11100110$ [9](#page=9).
> إذن، $(-26)_{10}$ بصيغة مكمل الاثنين هو `11100110` [9](#page=9).
> **Example:**
> حساب $7-4$ باستخدام مكمل الاثنين:
> $7 - 4 = 7 + \text{TC} $، حيث $\text{TC}(x)$ هو مكمل الاثنين للعدد $x$ [4](#page=4) [9](#page=9).
> * $+7$ في 8 بت: `00000111`
> * $+4$ في 8 بت: `00000100`
> * مكمل الواحد للـ 4: `11111011`
> * مكمل الاثنين للـ 4: `11111011 + 1 = 11111100`
> الآن نقوم بالجمع:
> `00000111` ($+7$)
> + `11111100` ($-4$)
> --------
> `100000111`
>
> عند استخدام 8 بتات، نهمل البت الأكثر أهمية (الترحيل)، ليصبح الناتج: `00000111`. هذا يبدو خاطئًا، دعونا نراجع المثال المقدم في المستند.
>
> المثال المقدم في المستند هو: $7-4 = 7 + \text{TC} = 0111 + (\text{TC} ) = 0111 + (1011+1) = 10011 = 0011 = (+3)_{10}$ [4](#page=4) [9](#page=9).
> (يفترض هنا استخدام 4 بتات للتبسيط، مع ملاحظة أن TC في 4 بت هو $1100$) [4](#page=4).
>
> إعادة حساب $7-4$ باستخدام 8 بتات:
> * $+7$ هو `00000111`
> * $-4$ بصيغة مكمل الاثنين:
> * $+4$ هو `00000100`
> * مكمل الواحد: `11111011`
> * مكمل الاثنين: `11111011 + 1 = 11111100`
>
> نجمع:
> `00000111` ($+7$)
> + `11111100` ($-4$)
> --------
> `100000111`
>
> عند استخدام 8 بتات، فإن البت الأقصى يساراً (البت التاسع) هو ترحيل يتم تجاهله، ويبقى الناتج `00000111`، وهو يمثل $+7$. هذا يدل على أن هناك خطأ في فهم أو تطبيق المثال في المستند المقدم.
>
> **تحليل المثال الثاني من المستند:**
> $127 - 26 = 101$ [9](#page=9).
> * $+127$ (8 بت): `01111111` [9](#page=9).
> * $-26$ (8 بت بصيغة مكمل الاثنين): `11100110` (كما حسبنا سابقًا).
>
> نجمع:
> `01111111`
> + `11100110`
> --------
> `101000101`
>
> عند استخدام 8 بتات، يتم تجاهل البت التاسع (الترحيل)، ويبقى الناتج `01000101`.
> لتحويل `01000101` إلى عشري: $(0 \times 2^7) + (1 \times 2^6) + (0 \times 2^5) + (0 \times 2^4) + (0 \times 2^3) + (1 \times 2^2) + (0 \times 2^1) + (1 \times 2^0) = 64 + 4 + 1 = 69$.
>
> **المستند يقدم:**
> `127 - 26 = 101 = 01100101` [9](#page=9).
>
> هناك تناقض بين حسابنا والمثال المقدم في المستند. لنفترض أن طريقة الحساب في المستند مختلفة قليلاً.
>
> **الاستنتاج بناءً على طريقة المستند:**
> `127 = 01111111` [9](#page=9).
> `+ (-26)` (في مكمل الاثنين): `11100110` [9](#page=9).
> `01111111 + 11100110 = 101000101` [9](#page=9).
> `c-à-2` (مكمل الاثنين) ` 10` (النتيجة المحتجزة) .
>
> يبدو أن المستند يحاول تفسير النتيجة `101000101` بعد الترحيل.
>
> **مثال آخر من المستند:**
> `26 - 127 = -101` [10](#page=10).
> * `26`: `00011010` [10](#page=10).
> * `-127` (في مكمل الاثنين):
> * $+127$: `01111111` [10](#page=10).
> * مكمل الواحد: `10000000` [10](#page=10).
> * مكمل الاثنين: `10000000 + 1 = 10000001` [10](#page=10).
>
> نجمع:
> `00011010`
> + `10000001`
> --------
> `10011011` [10](#page=10).
>
> يشير البت الأكثر أهمية (MSB) إلى أن النتيجة سالبة [10](#page=10).
> لتحويل `10011011` إلى قيمة موجبة:
> 1. نطرح 1: `10011011 - 1 = 10011010` [10](#page=10).
> 2. نعكس البتات: `01100101` [10](#page=10).
> 3. نحول إلى عشري: $64 + 32 + 4 + 1 = 101$ [10](#page=10).
> لذا، النتيجة العشرية هي `(-101)10`. هذا الحساب متفق مع المستند [10](#page=10).
> **Tip:** يعد تمثيل مكمل الاثنين مهمًا جدًا لأنه يسمح بإجراء العمليات الحسابية بالإشارة دون الحاجة إلى معالجة خاصة للإشارات [9](#page=9).
> **Tip:** في ترميز مكمل الاثنين، يتم تمثيل الإشارة بواسطة البت الأكثر أهمية (MSB): 0 للإشارة الموجبة (+) و 1 للإشارة السالبة (-) [10](#page=10).
> **Tip:** ترميز مكمل الاثنين متوافق مع الترميز غير الموضح (unsigned) للأعداد الموجبة [10](#page=10).
### 3.4 جدول مقارنة لقيم مكمل الاثنين (8 بت)
| العدد العشري | تمثيل ثنائي | مكمل الاثنين |
| :----------- | :---------- | :----------- |
| +7 | 0111 | 0111 |
| +6 | 0110 | 0110 |
| +5 | 0101 | 0101 |
| +4 | 0100 | 0100 |
| -7 | N/A | 1001 |
| -6 | N/A | 1010 |
| -5 | N/A | 1011 |
| -4 | N/A | 1100 |
(ملاحظة: الجدول في الصفحة 10 يحتوي على تمثيلات ثنائية قصيرة، وتمت إضافتها لتوضيح المفاهيم. التمثيل الكامل لمكمل الاثنين باستخدام 8 بتات يكون كما هو موضح في الأمثلة السابقة).
---
# تمثيل الأعداد الكسرية
يغطي هذا الجزء تمثيل الأعداد الكسرية في أجهزة الكمبيوتر، مع شرح لمفهوم النقطة الثابتة والنقطة العائمة، والتركيز على معيار IEEE 754 للدقة الواحدة والمزدوجة.
### 4.1 الأعداد الكسرية
بشكل عام، يتكون العدد الكسري من جزأين: قيمة صحيحة وقيمة كسرية، ويفصل بينهما فاصلة عشرية [11](#page=11).
#### 4.1.1 الترميز بالنقطة الثابتة (Fixed Point Coding)
في مستوى الآلة، لا تمتلك أجهزة الكمبيوتر فواصل عشرية بالمعنى المادي؛ حيث تُعامل الأرقام كأعداد صحيحة، ويبقى على المبرمج تحديد موقع الفاصلة العشرية الافتراضية. تعتمد سعة تمثيل الأعداد على عدد البتات المتاحة. النظام الثنائي هو نظام وزني، حيث لكل بت وزن يعتمد على ترتيبه [11](#page=11).
> **Example:**
> لتمثيل العدد الثنائي $N = (1001.01001)_2$:
> الجزء الصحيح: $1 \times 2^3 + 0 \times 2^2 + 0 \times 2^1 + 1 \times 2^0 = 8 + 1 = 9$ [12](#page=12).
> الجزء الكسري: $0 \times 2^{-1} + 1 \times 2^{-2} + 0 \times 2^{-3} + 0 \times 2^{-4} + 1 \times 2^{-5} = 0.25 + 0.03125 = 0.28125$ [12](#page=12).
> إذن، $(1001.01001)_2 = (9.28125)_{10}$ [12](#page=12).
#### 4.1.2 الترميز بالنقطة العائمة (Floating Point Coding) - معيار IEEE 754
تسمح الأرقام ذات النقطة العائمة بتمثيل جزء من الأعداد الحقيقية بشكل تقريبي. لا يمكن للقيمة الحقيقية أن تكون كبيرة جدًا أو دقيقة جدًا، ويعتمد ذلك على عدد البتات المستخدمة (عادة 32 أو 64 بت) [12](#page=12).
معيار IEEE 754 للحساب ذي النقطة العائمة هو معيار فني للحساب ذي النقطة العائمة تم إنشاؤه في عام 1985 بواسطة معهد المهندسين الكهربائيين والإلكترونيين (IEEE). يكون الترميز الثنائي على الشكل التالي [12](#page=12):
$$
\text{Sign} \quad \text{Exponent} \quad \text{Mantissa}
$$
حيث:
* $S$: إشارة (Sign).
* $E$: الأس (Exponent) (إشارة).
* $M$: الجزء الكسري من المانتيسّا (Mantissa) (بدون إشارة) [12](#page=12).
نسمي "التدوين العلمي" كل رقم مكتوب على الشكل $1.M \times 2^E$ [12](#page=12).
* $M$ تسمى المانتيسّا للرقم.
* $E$ يسمى الأس.
نظرًا لأن المانتيسّا دائمًا تبدأ بجزء صحيح يساوي 1، فلا تتم كتابته، ويتم فقط تمثيل الجزء الكسري $M$، والذي يسمى "المانتيسّا الزائفة" (pseudo-mantissa) [12](#page=12).
يعرّف معيار IEEE 754 نوعين رئيسيين من الأرقام ذات النقطة العائمة: الدقة الواحدة (32 بت) والدقة المزدوجة (64 بت) [12](#page=12).
##### 4.1.2.1 الدقة الواحدة (Single Precision)
تتميز أرقام الدقة الواحدة بمانتيسّا زائفة تتكون من 23 بت (تقابل قوى سالبة للعدد 2)، وأس من 8 بت، وبت إشارة [12](#page=12).
| بت الإشارة (1 بت) | الأس (8 بت) | المانتيسّا الزائفة (23 بت) | $E_{\min}$ (-126) | $E_{\max}$ (+127) |
| :----------------: | :--------: | :----------------------: | :---------------: | :---------------: |
| Sign | Exponent | Pseudo Mantissa | $E_{min}$ | $E_{max}$ |
> **Example:**
> لتمثيل العدد 278 بالصيغة IEEE 754 للدقة الواحدة [13](#page=13):
> 1. نكتب 278 بالنظام الثنائي: $ _{10} = _2$ [13](#page=13) .
> 2. نضعه في الصيغة العلمية: $1.0001011 \times 2^8$ [13](#page=13).
> * $S = 0$ لأن 278 موجب [13](#page=13).
> * $E_b = E + 127 = 8 + 127 = 135$ بالنظام العشري، والذي يساوي $ _2$ على 8 بت [13](#page=13).
> * $M = 00010110000000000000000$ (23 بت) [13](#page=13).
> نحصل على التمثيل التالي:
>
> | بت الإشارة (1 بت) | الأس (8 بت) | المانتيسّا الزائفة (23 بت) |
> | :----------------: | :--------: | :--------------------------------------------------------: |
> | 0 | 10000111 | 00010110000000000000000 |
> **Example:**
> لتمثيل العدد $-6.53125$ بالصيغة IEEE 754 للدقة الواحدة [13](#page=13):
> 1. نكتب 6.53125 بالنظام الثنائي: $(6.53125)_{10} = (110.10001)_2$ [13](#page=13).
> 2. نضعه في الصيغة العلمية: $1.1010001 \times 2^2$ [13](#page=13).
> * $S = 1$ لأن $-6.53125$ سالب [13](#page=13).
> * $E_b = E + 127 = 2 + 127 = 129$ بالنظام العشري، والذي يساوي $ _2$ على 8 بت [13](#page=13).
> * $M = 10100010000000000000000$ (23 بت) [13](#page=13).
> نحصل على التمثيل التالي:
>
> | بت الإشارة (1 بت) | الأس (8 بت) | المانتيسّا الزائفة (23 بت) |
> | :----------------: | :--------: | :--------------------------------------------------------: |
> | 1 | 10000001 | 10100010000000000000000 |
##### 4.1.2.2 الدقة المزدوجة (Double Precision)
تتميز أرقام الدقة المزدوجة بمانتيسّا زائفة تتكون من 52 بت، وأس من 11 بت، وبت إشارة [14](#page=14).
| بت الإشارة (1 بت) | الأس (11 بت) | المانتيسّا الزائفة (52 بت) | $E_{\min}$ (-1022) | $E_{\max}$ (+1023) |
| :----------------: | :---------: | :----------------------: | :----------------: | :----------------: |
| Sign | Exponent | Pseudo Mantissa | $E_{min}$ | $E_{max}$ |
[ ] [ ] [ ] [ ] [11](#page=11) [12](#page=12) [13](#page=13) [14](#page=14).
---
## Common mistakes to avoid
- Review all topics thoroughly before exams
- Pay attention to formulas and key definitions
- Practice with examples provided in each section
- Don't memorize without understanding the underlying concepts
Glossary
| المصطلح | التعريف |
|---|---|
| الترميز الثنائي النقي (Pure Binary Coding) | هو التمثيل الطبيعي للأرقام في النظام الثنائي، حيث يتوافق كل بت مباشرة مع وزن مكانه. يُستخدم بشكل شائع في الأنظمة الرقمية. |
| رمز جراي (Gray Code) | نوع من الترميز الثنائي حيث يتغير بت واحد فقط بين أي قيمتين متتاليتين. يساعد هذا في تقليل أخطاء الانتقال في الأنظمة الرقمية. |
| رمز BCD (Binary Coded Decimal) | ترميز يقوم بتمثيل كل رقم عشري على حدة باستخدام 4 بتات ثنائية. لا تُستخدم الإمكانيات الثنائية من 10 إلى 15 في هذا الترميز. |
| رمز الفائض بثلاثة (Excess-3 Code) | ترميز ثنائي حيث يتم تشفير كل رقم عشري بمعادلته الثنائية مضافًا إليها ثلاثة (3). |
| EBCDIC (Extended Binary Coded Decimal Interchange Code) | نظام ترميز ذو 8 بتات طورته IBM، وهو امتداد لرمز BCD، ويستخدم لتمثيل الأحرف في أجهزة IBM. |
| ASCII (American Standard Code for Information Interchange) | معيار ترميز ذو 7 بتات يستخدم لتمثيل الأحرف النصية والأرقام وعلامات الترقيم في تبادل البيانات بين الأجهزة، ويمكن توسيعه لـ 8 بتات. |
| UTF (Unicode Transformation Format) | عائلة من تنسيقات الترميز ذات الطول المتغير المستخدمة لتمثيل حروف يونيكود، والتي يمكن أن تشغل بايت واحد أو اثنين أو ثلاثة بايتات، وتوفر توافقًا مع ASCII. |
| الأعداد الصحيحة غير الموقعة (Unsigned Integers) | الأعداد الصحيحة التي تكون دائمًا موجبة أو صفرًا. يعتمد نطاق القيم الممثلة على عدد البتات المستخدمة، حيث يمكن لـ n بت تمثيل الأعداد من 0 إلى $2^n - 1$. |
| تمثيل الإشارة والقيمة المطلقة (Sign/Absolute Value) | طريقة لتمثيل الأعداد الصحيحة ذات الإشارة، حيث يتم تخصيص بت واحد (عادةً الأكثر أهمية) للإشارة (+ أو -)، وتمثل البتات المتبقية القيمة المطلقة للعدد. |
| مكمل الواحد (1's Complement) | طريقة لتمثيل الأعداد السالبة عن طريق قلب (عكس) جميع البتات في التمثيل الثنائي للعدد الموجب المقابل. |
| مكمل الاثنين (2's Complement) | الطريقة الأكثر شيوعًا لتمثيل الأعداد السالبة في الحواسيب. يتم الحصول عليها عن طريق أخذ مكمل الواحد للعدد الموجب وإضافة 1 إليه. هذه الطريقة تسمح بإجراء العمليات الحسابية بسهولة. |
| النقطة الثابتة (Fixed Point) | تمثيل للأعداد الكسرية حيث يتم تحديد موقع الفاصلة العشرية (أو النقطة الثنائية) بشكل ثابت، إما قبل أو بعد عدد معين من البتات. |
| النقطة العائمة (Floating Point) | تمثيل للأعداد الكسرية أو الحقيقية، حيث يتم تمثيل العدد كناتج لثلاثة مكونات: الإشارة، الأس، والجزء الكسري من المانتيسا. يسمح بتمثيل نطاق واسع جدًا من القيم. |
| معيار IEEE 754 | المعيار القياسي الدولي لتمثيل الأعداد ذات النقطة العائمة، والذي يحدد تنسيقات مختلفة للدقة الواحدة (32 بت) والدقة المزدوجة (64 بت). |
| الجزء الكسري من المانتيسا (Pseudo-mantissa) | الجزء الكسري من التمثيل العشري للرقم في ترميز النقطة العائمة، بعد تطبيعه ليبدأ بـ 1 (علمًا بأن الـ 1 هذا لا يتم تخزينه صراحة في بعض الحالات). |