كيف حالكم جميعاً .. أعضاءاً ومشرفين وزوار؟؟
طبعاً هذا أول موضوع لي عندكم.. لذلك الشاي على حساب واحدين و وكازوا و حسام و إسلام ...XD
كلنا نسمع ونعلم أن لغة الحاسوب-أو الآلة بشكل عام- هي الصفر و الواحد (1,0) لكن لماذا هي صفر و واحد ؟؟
يعود ذلك إلى أن الحاسوب مكون بشكل أساسي من دارات كهربائية و المعروف أن الدارات الكهربائية لها حالتين فقط إما مفتوحة و إما مغلقة أي أنها تعمل أو لا تعمل لذلك فإن الحاسوب بحاجة إلى لغة تعبر عن هذه الحالتين فقط لذلك تم الإصطلاح عن هاتين الحالتين برقمين هما الصفر والواحد بحيث يعبر الصفر عن عدم مرور تيار* والواحد** عن مرور تيار.
*الصفر في الحاسوب لا يعني عدم مرور التيار بشكل نهائي لكنها قيمة فرق جهد تنحصر بين 0.8V و 0V .
** الواحد يعبر عن فرق جهد بين 2V إلى 5.25V .
1- البت Bit : و هو أصغر مكون في لغة الآلة و هو يحمل قيمتين إما 0 أو 1 .
2- البايت Byte : وهو مكون من 8 بتات, يحمل البايت عدة قيمة يصل عددها إلى 256 قيمة أولها ال0 و آخرها 255 .
3-البت الأعلى قيمة (most significant bit) : هو أول بت يحمل قيمة واحد في البايت من جهة اليسار .
4- نظام العد الثنائي : هو نظام العد التي أعداده مكونة من رقمين إما 0 أو 1 .
5- نظام العد العشري : هو نظام العد المكونة أراقمه من 10 أعداد هي 0 1 2 3 4 5 6 7 8 9 .
6-سعة الكود code register : وهو عدد البتات المستخدمة لتمثيل رمز واحد (رقم ,حرف , إشارة , ...إلخ)
هنالك سؤال إذا كان الحاسوب له قيمتين هما الـ0 والـ1 فكيف يمكن الإصطلاح على بقية الأرقام ؟
يتم ذلك من خلال عملية تحويلة بسيطة من نظام العد المستخدم عند البشر المتمثل بـ (0,1,2,3,6,7,8,9) أي العشري
هو على النحو التالي :
يتم صف الأرقام المكونة من 0 و 1 بجانب بعضها بحيث يكون الواحد يمثل 2^(ترتيبه) كما هو مبين بالصورة
أمثلة ::
إذا كان لدينا الرقم التالي بالغة الثنائية (0,1) ::
00000101
فإنه يساوي بالعشري ::
2^0 +2^2 = 1 + 5 =5
01001010
فإنه يساوي ::
2^ 1+ 2^3+2^6 = 2 + 8 + 64 = 74
أما التحويل من عشري إلى ثنائي فهو يتم من خلال قسمة العدد العشري على 2 و أخذ الباقي في كل مرة , لأن الباقي
سيتكون من أحد رقمين لا ثالث لهما هما الصفر أو الواحد ::
أمثلة ::
العدد 12 يتم تحويله كما يلي ::
12÷2 =6 والباقي 0
6÷2 = 3 والباقي 0
3÷2 = 1 والباقي 1
1÷2 = 0 والباقي 1
هنا تنتهي عملية القسمة و يتم صف الباقي بجانب بعضه ليتكون لدينا العدد الثنائي
المكافئ للعد 12 ::
الناتج النهائي :: 1100
العدد 25 يتم تحويله كما يلي ::
25 ÷2= 12 و الباقي 1
12÷2= 6 و الباقي 0
6 ÷2 = 3 و الباقي 0
3 ÷2= 1 والباقي 1
1 ÷2= 0 والباقي 1
لذلك فإن الرقم المكافئ للرقم 25 هو ::
11001
* الأعداد المكافئة للأعداد العشرية الأساسية هي :
1 =0001
2 =0010
3 =0011
4 =0100
5 =0101
6 =0110
7 =0111
8 =1000
9 =1001
أتت لغات الآلة لتكون حلقة الوصل بين لغة البشر و المكونات الصلبة للحاسوب (Hardware) لكن لغة البشر تحتوي أرقاماً وحروف و إشارات و الحاسوب لا يستطيع أن يمثل إلى الأرقام -كما رأينا سابقاً- لذلك أتت الأكواد التي من خلاها يمكن تمثيل الأرقام و الحروف و ذلك عن طريق تخصيص رقم معين لكل حرف أو رقم .
1-النظام الثنائي-العشري Binary coded decimal code -البي سي دي كود BCD code
هو أحد أكثر الأنظمة استخداماً سعته هي 6 بت مقسمات بين 2 بت
لتحديد منظقة الرمز (zone area)
و 4 بت
لتمثيل الرمز (numeric area) كما مبين بالشكل التالي ::
حيث أن العامود العامودي يمثل ال
zone area و تكون قيمه :: 00 أو 01 أو 11 أو 10 على الترتيب من أعلى إلى أسفل
و الصف الأفقي هو ال
numeric area و تكون قيمه كما يلي ::
1 =0001
2 =0010
3 =0011
4 =0100
5 =0101
6 =0110
7 =0111
8 =1000
9 =1001
على الترتيب من اليسار إلى اليمين.
ويكون تمثيل الأعداد و الأحرف من خلاله بترتيب ال
zone area ثم ال
numeric area من اليسار إلى اليمين.
أمثلة ::
لنمثل كلمة MSOMS ::
110100 100010 110110 110100 100010
كلمة :: ESLAM2006
010101 100010 110011 010001 110100 000010 000000 000000 000110
وقد تم التعديل على هذا الكود إما بإضافة 1 بت ليصبح إسمه EBCD code -extended Binary coded decimal ولتزيد
سعته إلى 7 بت, و عدل أيضاً بطريقة أخرى و هي بإضافة العدد 3 بالنظام الثنائي لجميع قيمه ليصبح إسمه Excess-3
لكن هذا لم يزيد من سعته.
بعد فترة من إستخدام هذا النظام ظهرت عدة مشاكل فيه منها :عدم القدرة على تمثيل الرموز الخاصة(=,-,*,‘.%.^.&..إلخ)
أن هذا النظام بالكاد إستطاع إحتواء الحروف الإنجليزية الكبيرة فقط فكيف له أن يحتوي بقية أحرف لغات العالم..
لذلك ظهرت الحاجة لكود جديد أكثر تطوراً.
لكن بقي يستخدم هذا النظام بالأجهزة البسيطة كالآلات الحاسبة البسيطة.
2- النظام الأمركي المعتمد لتبادل المعلومات :The
American Standard Code for Information Interchange
المعروف بالإختصار ASCII الآسكي::
يعتبر هذا النظام إمتداداً فعَّالاً للنظام السابق حيث أنه إعتمد نفس طريقته لكن بسعة أكبر تصل إلى 7 بت -حالياً هي 8 بت- و إستطاع أن يمثل عدداً أكبر من الرموز تصل إلى 129 رمزاً على عكس النظام السابق الذي كان في أحسن أحواله يستطيع أن يمثل أقل من 64 رمزاً بالإضافة إلى أن هذا النظام إستطاع أن يحتوي بقية اللغات بعد زيادة سعته إلى 8 بت
ليصل إلى القدرة على تمثيل 256 رمزاً .
جدول الآسكي ::
أمثلة ::
لنمثل كلمة ""أحرف كبيرة""MSOMS
01001101 01010011 01001111 01001101 01010011
لكن نفس كلمة msoms ""بالأحرف الصغيرة"" ::
01101101 01110011 01101111 01101101 01110011
سنلاحظ فرقاً شاسعاً بينهما في التمثيل الثنائي لهما.. وذلك يعود إلى أن الحاسوب لا يستطيع أن يتعرف إلى أن الأحرف الصغيرة والكبيرة هي من نفس اللغة لذلك كان من الواجب تخزين الحرف مرتين مرة وهو كبير بقيمة و مرة وهو صغير بقيمة أخرى ..
مثل حرف A وهو كبير تكون قيمته بعد تمثيلها ثانئياً من الجدول هي 65 أما وهو صغير ""a"" تكون قيمته هي 97
>>و لإيجاد الأحرف اللاحقة نزيد كل مرة واحد أي ::
B=67 , C=68 , D=69 ...إلخ . كذلك الأحرف الصغيرة فالـ b=98, c=99, d=100 ..إلخ.
ختاماً
إلى هنا أنهي موضوعي مع علمي أنه لم يغطي إلا جانباً بسيطاً من أنظمة الحاسوب..
و أهديه إلى جميع الأحبة في منتدى البرامج و في فريق MSOMS-IT خاصة ..
و أيضاً إلى الأحبة في منتدى نور المعرفة .. و إلى الأخت داكوتا -وفقها الله لما يحب ويرضى-
و أية إستفسارات .. نحن بالخدمة
المفضلات