أساسياتالنظم الرقمية 49 1. يمكن استخدام الخانة الثامنة لمضاعفة عدد الرموز التي يمكن تمثيلها بحيث يصبح 256 رمزاً بدلاً عن 128 رمزاً. هذه الـ 256 رمزاً تكون ال 128 رمزاً الأولى منها هي رموز شفرة آسكي ASCII القياسية أما الـ128 رمزاً الاضافية فيمكن استخدامها في تمثيل أحرف اللغات الأخرى، مثل اللغة العربية، أو في تمثيل بعض الرموز الخاصة المستخدمة مثلاً فى الرسومات أو في بناء الجداول أو في كتابة المعادلات الرياضية و غير ذلك. 2. يمكن إستخدام الخانة الثامنة في عملية تسمى عملية التحقق Parity Check)،وهي عملية تستخدم لاكتشاف حدوث خطأ (Error) في نقل البيانات، حيث أنه عند نقل البيانات لمسافات طويلة عبر وسائل الاتصال المختلفة قد تتعرض تلك البيانات لحدوث أخطاء، فلاكتشاف حدوث مثل هذه الأخطاء يتفق كل من الطرف المرسل للبيانات والطرف المستقبل لها على أن يكون العدد الكلى للواحدات 1’s في أي رمز مرسل فردياً مثلاً، و هو مايسمى بالتحقق الفردي Odd Parity) وبناء على ذلك يقوم الطرف المرسل قبل إرسال أي رمز بحساب عدد الواحدات 1’s الموجودة فيه، فإذا وجد أن عددها فردي يقوم بوضع صفر 0 في الخانة الثامنة، وذلك للحفاظ على العدد الكلي للواحدات1’s، في الرمز فردياً، أما إذا وجد أن عدد الواحدات 1’s في الرمز المرسل زوجياً فإنه يقوم بوضع واحد 1 في الخانة الثامنة، بحيث يصبح عدد الواحدات الكلي 1’s في الرمز فردياً. أي أن مهمة الطرف المرسل هي التأكد من عدد الواحدات فردي في كل رمز يقوم بإرساله، وذلك بوضع القيمة المناسبة في الخانة الثامنة والتي يطلق عليها خانة التحقق .Parity bit) أما بالنسبة للطرف المستقبل فإنه يقوم بحساب عدد الواحدات في اي رمز تصل إليه، فإذا وجد أن عددها فردي كان معنى ذلك عدم حدوث خطأ أثناء عملية النقل، أما إذا وجد أن عددها زوجي فمعنى ذلك حدوث خطأ، والطريقة الوحيدة الممكنة لتصحيح الخطأ الذي حدث هنا هي أن يطلب الطرف المستقبل من الطرف المرسل إعادة إرسال الرمز الذي وصله خاطئاً، وهذا يتطلب بالطبع وجود إمكانية الاتصال في الاتجاهين، و هو أمر غير متاح في كثير من الأحيان. لاحظ أن هذا الأسلوب فى اكتشاف حدوث الأخطاء يعجز عن اكتشاف حدوث خطأ فى خانتين فى وقت واحد، ولا توجد مشكلة هنا حيث أنه في أي نظام رقمي مصمم بصورة جيدة يكون احتمال حدوث خطأ في خانتين في وقت واحد أمراً نادر الحدوث بحيث يمكن تجاهله، يمكن أيضاً أن يتفق الطرفان المرسل والمستقبل على أن يكون العدد الكلي للواحدات 1’s في أي رمز مرسل زوجياً، ويسمى هذا بالتحقق الزوجي Even Parity) 5-2 الترميز الموحد يونيكودUnicode أدى الانفجار في الإنترنت وملحقاتها إلى عولمة الحوسبة، وهذا قاد إلى استخدام معيار جديد لترميز الرموز والمحارف يسمى الترميز الموحد أو شفرة يونيكود Unicode، والذي يستخدم16 بتقادرة على ترميز ( 65536=162) رمز مختلف، ولكي تبقى عملية الترميز بسيطة وفعالة، فإن معيار يونيكود Standard Unicode،يعينّ اسماً وقيمة عددية فريدين من نوعهما، لكل رمز من الرموز .
عدد الصفحات ٥٠أساسياتالنظم الرقمية 50 الترميز الموحد أو شفرة يونيكود Unicode هو معيار عالمي يخصص لكل محرف في جميع اللغات العالمية رقم فريد رمزي code point ،وذلك بغض النظر عن نوع الحاسب أو البرامج المستخدمة (المنصة، البرنامج، اللغة). وقد وتم تصميمه لتمكين المحارف والرموز في كافة الأنظمة الكتابية في العالم من أن تتمثل من خلال الحاسب، وهي تتماشى مع المعايير العالمية، و تتكون من قائمة بأسماء المحارف وطريقة التشفير والرقم اليونيكودي لكل حرف. وتم تبنيها من قبل كبرى شركات إنتاج أنظمة الحواسيب في العالم، وقد قاد نجاح يونيكود في توحيد أنظمة تشفير الحروف إلى انتشاره واستعماله عالمياً ومحلياً في جميع برامج الحاسب،حيث تم تطبيق هذه المعيارية على العديد من التقنيات وأنظمة التشغيل ولغات البرمجة. معيار يونيكود يعتبر معيار الترميز الأكثر استخداماُ ومعترف به في كل أنظمة الحاسب تقريباً، الرموز 128 الأولى لها نفس تسلسل الخانات كما في أسكي ASCII، للحفاظ على التوافق مع المعلومات الممثلة بشفرة ASCII القديمة. يستخدم يونيكود Unicode عدد متغير من البتات لتمثيل كل رمز، والذي يسمح للأحرف غير الإنجليزية والرموز الخاصة أن تكون ممثلة. 5-3 الشفرة العشرية المشفرة ثنائياًBinary Coded Decimal) BCD استخدمت هذه الشفرة في الماضي لتمثيل الأعداد الصحيحة (Integers) في الحواسيبالمركزية الكبيرة القديمة (Main Frames)، خاصة تلك التي قامت بإنتاجها شركة IBM،في هذه الشفرة يتم تمثيل كل رقم من الأرقام من 0 ح9، باستخدام شفرة ثنائية مكونة من أربع خانات (bits Binary Code-4) و ذلككما هو مبين في الشكل (4-2:) الشكل4-2 )الشفرة العشرية المشفرة ثنائياًBCD لاحظ أن الخانات الأربعة المستخدمة في التمثيل هنا تعطينا16 شفرة Code) مختلفة، استخدمنا منها فقط العشرة الأولى وتبقت 6 شفرات غير مستخدمة هي 1111 ،1110 ،1101 ،1100 ،1011 ،1010
عدد الصفحات ٥١أساسياتالنظم الرقمية 51 لتمثيل أي عدد صحيح باستخدامالشفرة العشرية المشفرة ثنائياً BCD نأخذ أرقام العدد فى الصورة العشرية ونستبدل كل رقم الشفرة العشرية المشفرة ثنائياً BCD الخاصة به، مثلاً: 3 1 8 1000 0011 0001 بتجميعالشفرات العشرية المشفرة ثنائياً BCD للأرقام نحصل على831 =BCD (100000110001) لاحظ أنالأعداد الصحيحة الممثلة فى صورة الشفرة العشرية المشفرة ثنائياً BCD تشغل مساحة تخزينية أكبر من تلك التي تشغلها الأعداد الصحيحة الممثلة بالصورة التقليدية التى سبق لنا دراستها. كما أن إجراء العمليات الحسابية على الأعداد الممثلة فى صورة الشفرة العشرية المشفرة ثنائياً BCD به الكثير من المشاكل والصعوبات والتعقيدات. 5-4 الشفرة العشرية الموسعةالمشفرة ثنائياً لتبادل المعلومات Extended Binary Coded Decimal Information Code (EBCDIC) هذه الشفرة هي عبارة عن تطوير للشفرة العشرية المشفرة ثنائياً BCD بحيث تتمكن من تمثيل الرموز. و هي تشبه إ حد كبير شفرة آسكي ASCII إلا أن الشفرة الموسعة EBCDIC مكونة من 8 خاناتbits 8). استخدمت الشفرة الموسعةEBCDIC لتمثيل الرموز في الحواسيب المركزية الكبيرة Main Frames) التي تنتجها شركة آي بي ام IBM، وما زالت إمكانية التعامل مع البيانات الممثلة باستخدام الشفرة الموسعة EBCDIC موجودة حتى الآن في الحواسيب التي تقوم بإنتاجها شركة آي بي ام IBM وذلك لتمكين مستخدمي هذه الأجهزة من الرجوع لبياناتهم القديمة 5-5 الشفرة الرمادية " غراي " Gray Code يطلق على الشفرة الرمادية " غراي " Gray Code أيضاً تسمية الشفرة المعكوسة Reflected Code)، ذلك بسبب الأسلوب المستخدم في توليدها، تمتاز هذه الشفرة بأن كل رمزين متتاليين فيها يختلفان عن بعضهما البعض في خانة Bit واحدة فقط، ويمكن أن نقوم بتوليد الشفرة الرمادية كما وهو موضح في الجدول (5-2) الذي يعرض القيم العشرية Decimal values، الشفرة الثنائية الطبيعية Natural binary code، والشفرة الرمادية " غراي Gray code، وذلك من أجل شفرة بثلاث خانات ثنائية. تستخدم الشفرة الرمادية فى التطبيقات الصناعية التي تستخدم فيها الأنظمة الرقمية في التحكم فى الآلات.
عدد الصفحات ٥٢أساسياتالنظم الرقمية 52 الجدول (2-5) الشفرة الرمادية Gray Code وكيفية توليدها من أجل ثلاث خانات 5-6 نظام التررميز أزمو للحروف العربية ASMO نظام أزمو، المنظمة العربية للمواصفات والمقاييس Arab organization for standardization and metrology (Asmo)، يشترك مع نظام الترّميز آسكي ASCII بنسبة كبيرة، إذ يبدأ التخصيص للحروف العربية اعتباراً من الرمز ذي الرقم193 ، علما أن الأرقام الهندية )المنتشرة في بعض البلدان العربية) لا تخصص بترميز مستقل، بل يتم التعرف عليها من خلال نظام التشغيل الذي يتولى إظهارها باستخدام ما يقابلها من الأرقام العربية )المستخدمة في معظم بلدان العالم). راجع (ملحق 2) للاطلاع على نظام الترّميز أزمو 5-7 تمثيل الرموز Character Encoding المقصود بالرموز characters) هنا هو: الحروف الانجليزية الكبيرة A, B, C, D, …, Z (Capital Letters) (وعددها26). الحروفالانجليزية الصغيرة a, b, c, d, …, z (Small Letters) ) (وعددها26). الأرقام(Digits) 9 ,1 ,2 ,3,… ,0 (وعددها10). علامات الترقيم (Punctuation Marks). , + * ) ( ‘ &% $ # “ ! (- [ @ ? > = < ; : / .\ ^ ] ~ } | { ’ _ (وعددها32.) الرموز البيضاء White Characters) مثل سطر جديدNew Line ، مسافة أفقيةHorizontal Tab ، الفراغ Space .......(وعددها حوا6). رموز تحكمControl Characters) مثل الحذف الخلفيBack Space ، الهروبESC ، الحذف Del ......(وعددها حوا10). أي أن العدد الكلي للرموز هو 26+26+10+32+6+10 أي حوا110 رمزاً
عدد الصفحات ٥٣أساسياتالنظم الرقمية 53 ويتم تمثيل هذه الرموز باستخدام شفرة ثنائية Binary Code) بحيث يكون لكل رمز منها شفرة فريدة تميزه واقل عدد من الخانات يلزم لتمثيل جميع الرموز هو 7 خاناتbits)7)، حيث أنعدد الشفرات الثتائية المتاحة في هذه الحالة هو 128 = 72 و هذا العدد يكفي لتمثيل جميع الرموز كما رأينا، في أجهزة الحاسب يجب أن تمثل جميع الأرقام داخلياً باستخدام الشفرة الثنائية، لكن ماذا عن النص؟ كيف يمكن أن يزودنا الحاسب بتمثيل للرموز غير الرقمية التي نستخدمها للتواصل، مثل هذه الجملة التي تقرأها الآن؟ الجواب هو معايير أو مخططات ترميز الأحرف. معايير ترميز الحروف Character Encoding Standards هي مجموعة من المعايير تقوم بتعيين سلسلة فريدة من الخانات الثنائية (البتات) لكل رمز، أي يملك كل رمز شفرة مثاني فريد ، وتم إيجاد شفرة لمعظم الرموز والحروف المستخدمة، احدى هذه المعايير التي استخدمت من قبل أجهزة الحاسب الشخصية لتمثيل الحروف هي شفرة أسكي ASCII ، في حين تستخدم أجهزة الحاسب المركزية الشفرة الموسعة EBCDIC. مع أن هذه المعايير كانت فعالة للغاية، ومع ذلك، فهي محدودة، على سبيل المثال شفرة أسكي ASCII تستخدم فقط سبع خانات ثنائية (7 بت) لتمثيل كل حرف، وهو مما يعني أنه لا يمكن تمثيل سوى 128 رمز128=72)، وكان هذا جيد بالنسبة لمعظم الحروف في اللغة الإنجليزية ولكن لم يكن كافياً لدعم لغات أخرى مثل الصينية واليابانية، مع أن هذه اللغات لديها أيضا العديد من الرموز ممثلة في شفرة آسكيASCII . لذلك معظم الأنظمة الرقمية تستخدم اليومالترميز الموحد أو شفرة يونيكود Unicode، والذي يستخدم ست عشرة خانة ( 16 بت) قادرة على ترميز ( 65536=162) رمز مختلف. وهنا نذكر بضرورة التمييز بين الرقم عندما يتعامل معه الحاسب كرقم وبين أن يتعامل معه كمحرف أو رمز. 5-8 كيفية تمثيل كلمة في نظام التررميز آسكي ASCII Word Representation in ASCII Code فى علوم الحاسب العلم الذى يختص بدراسة أصوات الكلام هو Speech Processing والعلم الذى يختص بدراسة شكل الحرف ورسمه هو Typography ،أما ترتيب الحرف فالمفهوم داخل الحاسب يختلف على ما هو عليه فى اللغات الطبيعية والمجال الذى يختص بدراسته هو علم ترميز(تشفير) الحروف في الحاسب Character encoding. يعتبر مجال Character encoding من أهم مجالات الحاسب التى لا يهتم بها الكثيرون، فبسببه أمكن رسم الحروف وطباعتهم والتعامل معهم، و قد مر هذا المجال بالعديد من المراحل إلى أن وصل لمرحلة الإستقرار التى نشهدها حاليا . سنشرح مثال فقط عن كيفية تمثيل كلمة باستخدام نظام الترميز آسكي ASCII.
عدد الصفحات ٥٤أساسياتالنظم الرقمية 54 مثال1: لمعرفة كيفية ترميز كلمة GOD في نظام الترّميز آسكي ASCII نجد أن • الحرف G رقمه10(71) أي في النظام الثنائي2(1000111 )وبما أن نظام الترّميز يعتمد ثماني خانات نضيف صفراً من جهة اليسار فنحصل على الترّميز : (1000111). • الحرفO رقمه10(111) أي في النظام الثنائي2(1101111)، نضيف صفراً من جهة اليسار فنحصل على الترّميز : (11011110). • الحرفD رقمه10(001) أي في النظام الثنائي2(1100100)، نضيف صفراً من جهة اليسار فنحصل على الترّميز : (01100100). • وبالتا فالكلمة بالكامل في النظام الثنائي وفق ترميز آسكي ASCII تتمثل كما يلي 1000111 11011110 01100100 مثال2: وجدنا أن كلمة GOD تتمثل في النظام الثنائي وفق ترميزASCII كما يلي 1000111 11011110 01100100 مع ذلك إذا فحصنا خانات القرص الصلب الذي سجلت عليه هذه الكلمة فسنجد على التتالي ما يلي: • خانة خالية من الشحنة ثم خانتين ممغنطتين ثم خانتين خاليتين من الشحنة ثم خانة ممغنطة ثم خانتين خاليتين )انتهى الحرف الثالث = نهاية البايت الحاوي له). • خانة خالية من الشحنة ثم خانة ممغنطة ثم ثلاث خانات خالية من الشحنة ثم ثلاث خانات ممغنطة )انتهى الحرف الثاني = نهاية البايت الحاوي له). • خانتين ممغنطتين ثم خانة خالية من الشحنة ثم أربع خانات ممغنطة )انتهى الحرف الأول = نهاية البايت الحاوي له). مثال 3: على غرار ما سبق يتم تمثيل الرقم 21 مثلاً في حالة كتابته في محرر النصوص )أما في حالة معاملته كرقم فتختلف طريقة ترميزه ( وعند ترميز الرقم 21 كنص يكتب كما يلي: • رمز الرقم واحد يقابله العدد 10(49) والذي يعبر عنه في الثنائي بالعدد 2)110001)
عدد الصفحات ٥٥أساسياتالنظم الرقمية 55 ولإتمام الخانات الثمانية نضيف صفرين إلى اليسار فنحصل على: 00110001)) • رمز الرقم اثنين يقابله العدد 10(50) والذي يعبر عنه في الثنائي بالعدد 2)110010) ولإتمام الخانات الثمانية نضيف صفرين إلى اليسار فنحصل على: 00110010)) • وبالإجمال يكون ترميز الرقمي21 (كنص) كما يلي 00110001 00110010 وتسلسل مغنطة الخانات يقرأ على غرار ما شاهدنا في الحالة السابقة. 5-9 تمثيل الأعداد الحقيقية Real Numbers Representation العدد الحقيقيReal Number) هو العدد الذي يكون محتوياً على كسرFraction)، مثل-22.753 أو0.1 أو 2.4444 .يتكون العدد الحقيقي من جزئين: عدد صحيحInteger) وكسر Fraction)،تفصل بينهما الفاصلة Point)، وال يطلق عليها في النظام العشري الفاصلة العشرية Decimal Point)،وللعدد الحقيقي إشارة Sign) الشكل (2-2) يوضح أجزاء العدد الحقيقي: الفاصلة Point) -22 . 753 الإشارة Sign) الجزء الكسري Fraction) الجزء الصحيحInteger) الشكل2-2) أجزاء العدد الحقيقي لتمثيله يتم الانطلاق ببساطة من كون أي جزء كسري هو عبارة عن عدد صحيح مضروب بقوى أساس النظام، وبالتالي يؤخذ العدد الصحيح وتزاح الفاصلة فيه عبر الضرب بالعدد عشرة مرفوعا للقوة نفسها، و لهذا السبب نجد أن العدد الحقيقي يحتاج لحجم تخزيني أكبر بكثير من العدد الصحيح.
عدد الصفحات ٥٦أساسياتالنظم الرقمية 56 5-10 تمثيل الأعدد الصحيحة Integers Representation للتعامل مع الأعداد تعتمد منهجية أخرى ، حيث يتم تمثيل العدد حسب نوعه وحجمه، ولذلك تجد في لغات البرمجة أن العدد يقسم إلى أصناف متعددة جدًا منها: العدد من النوع بايت(:byte) وهو العدد الذي يمكن تمثيله في المجال 0 – 255،وهذا العدد يمكن الحصول عليه مباشرة من تحويل العدد الثنائي إلى عدد عشري، ونحتاج من أجل تمثيله إلى بايت واحد، أي إلى سلسلة مؤلفة من ثماني خانات ثنائية. العدد من النوع وورد(:word) وهو ينحصر في المجال 0 – 65535،ومن الواضح أنه يحتاج إلى سلسلتين من الخلايا الثنائية كل منها بطول ثماني خانات، وبالتالي يمكننا تمثيل مجموعة من الأعداد الطبيعية عددها 65535 =162 عدد، وهو نفس العدد المعرف(.word) 5-10-1 أنواع الأعداد الصـحيحة Integer Types تنقسمالأعداد الصحيحة إلى عدة أنواع حسب المساحة المستخدمة في تخزين الأعداد: 1- عدد صحيح قصshort Integer ) وطوله1 Byte = 8 bits 2- عدد صحيحInteger ) وطوله2 Byte = 16 bits 3- عدد صحيح طويلLong Integer ) وطوله4 Byte = 32 bits من ناحية أخرى تنقسم الأعداد الصحيحة حسب طبيعة الأعداد التي يتم تخزينها فيها إلى نوعين وهما: 1- الأعداد الصحيحة بدون إشارة Unsigned Integers) وفيها يتم تخزينالأعداد الموجبة فقط. 2- الأعداد الصحيحة بإشارة Signed Integers) وفيها يتم تخزينالأعداد الموجبة والسالبة. 5-10-1-1 الأعداد الصـحيحة بدون إشارةUnsigned Numbers لتمثيل العدد الصحيح يجب تحويله بداية من الشكل العشري (Decimal) إلى الشكل الثنائي(Binary)، ويتم ذلك بتقسيمه على أساس النظام الثنائي أي الرقم 2 والاحتفاظ بباقي القسمة، وكمثال العدد العشري 121 يكافئ العدد الثنائي 1111001 ويكتب ذلك رياضياً كما يلي 2(1111001=)10(121) ويمكن التحقق من ذلك بأن نقوم بالعملية العكسية، أي تحويل العدد الثنائي1111001 إلى الشكل العشري
عدد الصفحات ٥٧أساسياتالنظم الرقمية 57 تسمى الخانة الواقعة في أقصى اليمين في العدد الثنائي بالخانة الدنيا أو الأقل أهمية (Least Significant Bit)، واختصاراً LSB، وذلك لأنها الخانة الأقل وزناً حين تسمى الخانة الواقعة في أقصى اليسار بالخانة العليا أو الأكثر أهمية (Most Significant Bit)، واختصاراً نكتبMSB، وذلك لأنها الخانة الأعلى وزناً. تذكر أن وزن الخانة هو عبارة عن الأساس 2 مرفوع لأس يساوي رتبة الخانة، ونحصل على رتب الخانات بترقيم الخانات ابتداءً من الخانة التي تقع في أقصى اليمين، مبتدئين بالقيمة صفر. 0 1 2 3 4 5 6 7 0 1 0 1 0 0 1 1 مراتب الخانات LSB MSB بعد تحويل العدد إلي الشكل الثنائي ننظر إلى المساحة المتاحة لتخزين العدد، ونقوم بوضع الخانات بالترتيب فيها مبتدئين بالخانة الدنيا (LSB)، مع ملء أي خانات فائضة إلى اليسار بأصفار 0"s) مثلاً إذا كانت المساحة المتاحة 1 Byte = 8 bits فإن التخزين سيتم كالتالي: 0 0 0 0 1 1 1 1 LSB LSB خانات فائضة أي انه إذا كان طول العدد الثنائي أقل من المساحة المتاحة يتم محاذاته إلى اليمين ثم تملأ الخانات الزائدة إلى اليسار بأصفار0"s) تسمى هذه العملية بالمحاذاة إلى اليمين مع الملء بأصفار Right Justify- Zero Fill) يمكن حساب مدى القيم التي يمكن تخزينها في صورة عدد صحيح قصير Short Integer) كالتا: إذا كانت المساحة المتاحة 2 Bytes = 16 bits فإن التخزين سيتم كالتالي: 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
عدد الصفحات ٥٨أساسياتالنظم الرقمية 58 المساحة المتاحة هي: 1 Byte = 8 bits أي 8 خانات ثنائية نحصل علي أصغر قيمة بملء جميع الخانات بـ 0"s 0 = و نحصل علي أكبر قيمة بملء جميع الخانات بـ 1"s 255 = وعليه فإن مدى القيم التي يمكن تمثيلها فى صورة عدد صحيح قصير(short Integer) هو 0 ~255 أو1)- 8(2 ~ 0 وبالمثل يمكن اثبات أن مدى القيم التي يمكن تمثيلها فى صورة عدد صحيح (Integer) هو1)- 16(2 ~ 0 وعموماً إذا كان عدد الخانات المتاحة هو N فإن المدى هو 1)- N(2 ~ 0 الجدول (6-2) التا يوضح أنواع الأعداد الصحيحة وطول كل منها ومدى القيم الذي يمكن تخزينه في كل نوع نوع العدد الصحيح طوله مدى القيم Short Integer 1 Byte = 8 bits 1)-80 ~ (2 0 ~ 255 Integer 2 Bytes = 16 bits 1)- 160 ~ (2 65,5350 ~ Long Integer 4 Bytes = 32 bits 1)- 320 ~ (2 0 ~4,294,967,295 ------ N 1)- N0 ~ (2 الجدول (6-2) أنواع الأعداد الصحيحة ومدى القيم لكل منها تسمى الأعداد الصحيحة التي تعاملنا معها في ما سبق بالأعداد الصحيحة بدون إشارة Unsigned Integers) 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
عدد الصفحات ٥٩أساسياتالنظم الرقمية 59 5-10-1-2 الأعداد الصـحيحة ذات الإشارة Signed Integers تناولنا في الجزء السابق طريقة تمثيل الأعداد الصحيحة بدون إشارة Unsigned Integers)، وال يتم تخزين قيم موجبة فقط بها، وبالتالي فإن أصغر قيمة يمكن تخزينها فيها هي الصفر 0. والسؤال الآن هو كيف يتم تمثيل الأعداد السالبة في الحاسب؟ لتمثيل الأعداد السالبة يتم حجز خانة bit لتمثيل إشارة العدد sign، وعادة ما تكون هذه الخانة هي الخانة العليا MSB، ويتم تخزين مقدار العدد Magnitude في بقية الخانات. المقدار الإشارة وعادة ما تستخدم القيمة 0 في الخانة العلياMSB لتمثيل الإشارة الموجبة، في حين تستخدم القيمة 1 لتمثيل الإشارة السالبة. فلمعرفة إشارة العدد ننظر إلى الخانة العليا MSB فإذا كان: MSB = 0 فالعدد موجب MSB = 1 فالعدد سالب مثلاُ إذا أردنا تمثيل القيمة 29 + في صورة عدد صحيح بإشارة في مساحة تبلغ 1 Byte = 8 bits فإننا نتجاهل إشارة القيمة مؤقتاً و نقوم بتحويل المقدار من الصورة العشرية إلى الصورة الثنائية. 2(11101) = 29 المساحة المتاحة تبلغ ثمان 8 خانات، نستبعد منها الخانة العليا MSB لتمثيل الإشارة، فيتبقى سبع 7 خانات لتمثيل المقدار، يتم تخزين مقدار العدد الصحيح ذو الإشارة في المساحة المتاحة له بنفس طريقة تخزين الأعداد الصحيحة بدون إشارة Unsigned Integers) وأخيرًا نضع 0 في خانة الإشارة لأن القيمة موجبة . 29 = 1 0 1 1 1 0 0 0 المقدار الإشارة و تمثيل القيمة 29 - يتم بنفس الطريقة ولكن مع وضع 1 في خانة الإشارة لأن القيمة سالبة.
عدد الصفحات ٦٠أساسياتالنظم الرقمية 60 29 - = 1 0 1 1 1 0 0 1 المقدار الإشارة يسمى هذا الأسلوب في تمثيل الأعداد الصحيحة ذات الإشارة بطريقة )المقدار-الإشارة) ، Sign-Magnitude)، حيث الفصل بصورة كاملة ما بين إشارة القيمة و مقدارها . هذا الأسلوب في تمثيل الأعداد الصحيحة ذات الإشارة به مشكلة خطيرة تتمثل في أن القيمة صفر لها شكلين صفر موجب 0 = 0 0 0 0 0 0 0 0 صفر سالب - 0 =0 0 0 0 0 0 0 1 ووجود شكلين للصفر يعتبر مشكلة لأن عملية فحص قيمة معينة لمعرفة ما إذا كانت مساوية للصفر أم لا هي من أكثر العمليات التي يتم إجراؤها داخل الأنظمة الرقمية، ووجود شكلين للصفر يعنى أن هذه العملية يجب إجراؤها مرتين، مما يقلل كثيرًا من كفاءة النظام الرقمي. حلاً لهذه المشكلة يستخدم أسلوب المتمم الثنائي (2’s Complement) لتمثيل الأعداد الصحيحة ذات الإشارة. مثلاُ إذا أردنا تمثيل القيمة 29+ في صورة عدد صحيح بإشارة في مساحة تبلغ Byte = 8 bits فإننا نتجاهل إشارة القيمة مؤقتاً و نقوم بتحويل المقدار من الصورة العشرية إلى الصورة الثنائية 2(11101) = 29 المساحة المتاحة تبلغ ثمان 8 خانات، لذلك نقوم بإكمال طول العدد الثنائي إلى ثمان 8 خانات وذلك بإضافة أصفار0"s) إلى يسار العدد. 2= (00011101) 2(11101) و أخيرًا نقوم بوضع العدد الثنائي في المساحة المتاحة له 29 1 0 1 1 1 0 0 0
عدد الصفحات ٦١أساسياتالنظم الرقمية 61 أما لتمثيل القيمة - 29 فإننا نبدأ بنفس خطوات تمثيل القيمة 29+ ، حيث نتجاهل إشارة القيمة مؤقتاً ونقوم بتحويل المقدار من الصورة العشرية إلى الصورة الثنائية، ثم نقوم بإكمال طول العدد الثنائي إلى 8 خانات وذلك بإضافة أصفار0"s) إلى يسار العدد. 2= (00011101) 2(11101) = 29 و بما أن القيمة المطلوب تمثيلها سالبة فإننا نحتاج إلى إيجاد المتمم الثنائي (2’s Complement) للعدد الثنائي الناتج، حيث أن المتمم الثنائي لعدد ثنائي هنا يمثل القيمة السالبة للعدد. إيجاد المتمم الثاني لعدد ثنائي يتم في خطوتين كما أسلفنا سابقا في هذا الفصل، الخطوة الأولى هي إيجاد المتمم الأحادي (’s Complement1)، وذلك بعكس جميع خانات العدد الثنائي، أي تحويل أي صفر 0 إ واحد 1 وتحويل أي واحد 1 إ صفر 0 الخطوة الثانية هي إضافة واحد 1 للتمم الأحادي لنحصل على المتمم الثنائي. العدد 00011101 المتمم الأحادي 11100010 +1 المتمم الثنائي 11100011 أخيرًا نقوم بوضع العدد الثنائي الناتج في المساحة المتاحة له. = - 29 1 1 0 0 0 1 1 1 يمكن أن نلاحظ ا: o الخانة العلياMSB هما مازالت تمثل إشارة العدد، فـــ الخانة MSB=0 للقيمة الموجبة 29 و والخانة MSB=1 للقيمة السالبة -29. o المتمم الثنائي2’s Complement) لعدد ثنائي يمثل سالب ذلك العدد o لا يوجد فصل ما بين مقدار العدد Magnitude) وإشارتهSign)، حيث أن جميعالخانات بما في ذلك خانة الإشارة تدخل في حساب مقدار العدد.
عدد الصفحات ٦٢أساسياتالنظم الرقمية 62 5-10-2 إيجاد مقدار العدد السالب Find the Magnitude of Negative Number المطلوب مثلاً إيجاد القيمة العشرية للعدد الثنائي 11100011 إذا كان يمثل عدداً صحيحاً قصيرًا بإشارة. نبدأ بتحديد إشارة العدد وذلك بالنظر للخانة العليا MSB، هذه الحالة نجد أن الخانة العليا MSB=1 مما يعني أن العدد سالب، لإيجاد مقدار عدد سالب نقوم بإيجاد المتمم الثنائي له، لأن سالب العدد السالب عبارة عن عدد موجب كما نعلم. العدد 11100011 المتمم الأحادي 00011100 +1 المتمم الثنائي 00011101 أخيرًا نقوم بتحويل المقدار من الشكل الثنائي للشكل العشري. 29 2= (11101) 2(0011101) إذاً العدد هو– 29 وعموماً لإيجاد قيمة عدد صحيح بإشارة يمكن استخدام المخطط في الشكل8-2) التا الشكل (8-2) مخطط يوضح طريقة إيجاد قيمة عدد صحيح بإشارة مثال: وضح طريقة تمثيل القيمة -12 في صورة : 1- عدد صحيح قصير بإشارة Signed Short Integer) 2- عدد صحيح بإشارة Signed Integer) MSB=1العدد السالب MSB=0 العدد الموجب نوجد المتمم الثاني نحول من ثنائي إلى عشري MSB
عدد الصفحات ٦٣أساسياتالنظم الرقمية 63 الحل نقوم أولاً بتحويل المقدار إلى الصورة الثنائية 212 = (1100) أ- عدد صحيح قصير بإشارة : نكمل طول العدد إلى 8 خانات ثم نقوم بإيجاد المتمم الثنائي له العدد 00001100 المتمم الأحادي 11110011 +1 المتمم الثنائي 11110100 أي أن212 = (1110100)- ب- عدد صحيح بإشارة : نكمل طول العدد إلى 16 خانات ثم نقوم بإيجاد المتمم الثنائي له العدد 0000000000001100 المتمم الأحادي 1111111111110011 +1 المتمم الثنائي 1111111111110100 أي أن212 = (1111111111110011)- في المثال السابق قمنا في ( أ ) بتمثيل العدد الصحيح ذو الإشارة 12 - في 8 خانات ثم قمنا في ( ب ) بزيادة طول العدد إلى 16 خانة 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 لاحظ أننا قد قمنا بملء الخانات الفائضة إلى اليسار بـــــ 1's
عدد الصفحات ٦٤أساسياتالنظم الرقمية 64 وبالمقارنة إذا أردنا تمثيل القيمة الموجبة 12 + في 8 خانات ثم في 16 خانة 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 لاحظ أننا قد قمنا بملء الخانات الفائضة إلى اليسار بـــــ 0 's يمكن بصورة عامة القول أنه عند زيادة طول العدد الصحيح ذو الإشارة فإننا نقوم بملء الخانات الفائضة إلى اليسار بإشارة العدد و تسمى هذه العملية بتمديد الإشارة Sign Extension) مثال أوجد القيمة العشرية للعد الثنائي 11110101 وذلك إذا كان يمثل: 1- عدد صحيح قصير بدون إشارة Unsigned Short Integer) 2- عدد صحيح قصير بإشارة Signed Short Integer). الحل 1) العدد بدون إشارة Unsigned) ، وبالتا فإن كل الخانات تمثل مقدار العدد، وما علينا إلا التحويل من الشكل الثنائي إلى الشكل العشري 128+ 64+ 32 +16+ 4+ 1 =2450+2 2+ 24+ 25+2 6+ 2 7= 22(11110101) 2) العدد بإشارة Signed) و عليه ننظر للخانة العليا MSB لتحديد إشارته،MSB=1 مما يعني أن العدد سالب. لحساب المقدار نقوم بإيجاد المتمم الثنائي العدد 11110101 المتمم الأحادي 00001010 +1 المتمم الثنائي 00001011 ثم نحول المقدار للصورة العشرية 11= 0+2 1+ 23=22= (1011)2(00001011) أي أن القيمة هي -11
عدد الصفحات ٦٥