السبت، 23 أكتوبر 2010

الانظمة العددية

النظام العشري و الثنائي و التحويل بينهم



في بداية مشوارنا , من المهم ان نفهم ماهو النظام العشري Decimal system و النظام الثنائي Binary system و حتى النظام الست عشري Hexadecimal system.

النظام العشري

نسخدم النظام هذا يوميا في حياتنا و في اغلب امورنا و هو بكل بساطة نظام الارقام على الاساس العشري و يحتوي على :

0 1 2 3 4 5 6 7 8 9

عدد مكونات النظام العشري هو عشرة ارقام , و هذا هو سبب تسميته بهذا الاسم حيث انه يكبر بعد كل عشرة ارقام, مثل بسيط هو التالي:

0 1 2 3 4 5 6 7 8 9 10 11

لاحظتم الاختلاف بين ال9 و ال10 , حيث انه عندما انتهينا من الارقام ( اخر رقم هو 9) رجعنا للرقم الاول و هو صفر و اضفنا واحد بجواره, و لو واصلنا العد لوصلنا الى ال19 و ثم نرجع الرقم 9 الى صفر و نضيف واحد الى الرقم 1 فيصبح الرقم 20 و هكذا دواليك.

النظام الثنائي

كما قلنا ان النظام العشري يعتمد على اساس عشرة ارقام , فارقم الثنائي يعتمد على رقمين فقط و هما صفر وواحد

1 0

و بنفس الطريقة , عند الانتهاء من الارقام نضيف الرقم صفر و نزيد واحد , كما هو الحال

0 1 10 11 100 101 110 111

نلاحظ ان النظام يتكون من رقمين فقط , صفر وواحد نبدا بالصفر ثم واحد ثم نضيف واحد مكانالصفر و نضيف واحد بجوار الرقم عند انتهاء الارقام ( في حالتنا انتهاء الارقام هما صفر وواحد)

ملاحظة مهمة:

الرقم التالي 101100 في النظام الثنائي لا يلفظ ب مئة وعشرة الالاف و مئة! بل يلفظ كالتالي:

واحد صفر واحد واحد صفر صفر

و القاعدة هي : عندما نصل الى رقم صاحب الترتيب الذي يساوي اساس نظام العد ( في حالتنا هنا النظام الثنائي مثلا) نقوم بوضع الرقم صفر في الخانة الحالية و نضيف الرقم واحد في الجهة التالية له.

الآن بعد ان عرفنا ما هو النظام العشري و النظام الثنائي , سنقوم بالتحويل بينهم .

التحويل من النظام الثنائي الى العشري

سندرس معاً كيفية تحويل الرقم الثنائي الصحيح فقط لانه هو ما يهمنا في هذه الدورة و سأحوال قدر الامكان ان لا اتطرق الى اي شي خارج محتوى الدورة حتى لا اخرج عن صلب الموضوع ولا اتوّه القارئ الكريم.

اولا, لنتكلم عن النظام العشري, مثلا الرقم 134 يتكون من التالي :

= 10 ^0 ضرب 4 + 10^1 ضرب 3 + 10^2 ضرب 1

= 4 + 30 + 100

= 134

اليست الطريقة صحيحة؟

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

التحويل الى الرقم الثنائي شبيه جدا , و بما ان اساس النظان الثنائي هو 2 فنستبدل الرقم 10 ب 2 , لنأخذ رقما معيناً لنحوله, فليكن الرقم 111 مثلا

111

= 2^0 ضرب 1 + 2^1 ضرب 1 + 2^2 ضرب 1

= 1 + 2 + 4

= 7

جميل! الرقم 111 ( واحد واحد واحد) يساوي 7 في النظام العشري.

لنجرب رقماً اخر و ليكن 1010101

1010101

= 2^0 ضرب 1 + 2^1 ضرب 0 + 2^2 ضرب 1 + 2^3 ضرب صفر + 2^4 ضرب واحد + 2^5 ضرب صفر + 2^6 ضرب واحد

= 1 + 0 + 4 + 0 + 16 + 0 + 64

= 85

اعتقد ان المسألة اصبحت سهلة الآن ، بامكانكم التأكد من الناتج بواسطة الآلة الحاسبة الموجودة في الوندوز مثلا.

start>>programs>>accessories>>calculator

بعد تحويلها الى الالة الحاسبة العلمية طبعا.

التحويل من النظام العشري الى الثنائي

الطريقة اسهل هنا, لنأخذ مثلا الرقم 400 , لتحويله نقسمه على 2 , فاذا كانت الناتج يحتوي على كسور فيكون الرقم الاول من الرقم الثنائي هو 1 و اذا لم يتحوي على كسور فيكون الرقم صفر

يعني :

400 / 2 = 200 , اذن الرقم الاول هو صفر

200 / 2 = 100 , صفر

100 / 2 = 50 , صفر ايضا

50 / 2 = 25 , صفر

25 / 2 = 12 , واحد

12 / 2 = 6 , صفر

6 / 2 = 3 , صفر

3 / 2 = 1 , واحد

1 / 2 = 0 , واحد

يصبح الناتج هو = 110010000

تبدأ من الاسفل و تصعد للاعلى .

هذه باختصار عملية تحويل الرقم العشري الى الثنائي و الثنائي الى العشري, و بهذا نكون قد انتهينا الدرس الاول من هذه الدورة , امل ان يكون الشرح واضحاً.





نظام العد الثنائي
طبعا هناك في العالم أنظمة عد مختلفة واشهرها هو النظام العشري ولكن منذ اختراع الحاسوب (Computer) استخدم نظام عد يناسب الخواص التقنية له وهو النظام الثنائي

يتكون أي نظام للعد من عدد من الرموز وحسب عدد الرموز يطلق على النظام الاسم الموافق ونظام العد العشري سمي عشريا لأنه يستخدم عشرة رموز , والنظام الثنائي يستخدم رمزان فقط هما الصفر والواحد (1,0) ويبين الجدول التالي الخصائص الأساسية للنظامين

اكبر قيمة في الرمتبة الواحدة عدد الرموز N أساس نظام نظام العد

9 10 10 النظام العشري

1 2 2 النظام الثنائي

تمثيل الأعداد من 1 إلى 16 في النظام الثنائي

النظام العشري 1116 النظام الثنائي النظام العشري النظام الثنائي
0 0000 8 1000
1 0001 9 1001
2 0010 10 1010
3 0011 11 1011
4 0100 12 1100
5 0101 13 1101
6 0110 14 1110
7 0111 15 1111

تحويل العدد العشري إلى ثنائي
طبعا يوجد أكثر من طريقة ولكن سوف نستخدم طريقة الباقي

مبدأ هذه الطريقة هو القسمة على 2 وتكرار هذه العملية حتى تنتهي العملية مع الاحتفاظ بالباقي . وتشكل البواقي العدد الثنائي المكافئ

مثال : تحويل العدد العشري 15 إلى ثنائي بطريقة الباقي

0 1 3 7 15 العدد
2 2 2 2 المقسوم عليه
1 1 1 1 الباقي

الناتج هو : 1111

مثال : تحويل العدد العشري 25 إلى ثنائي

0 1 3 6 12 25 العدد
2 2 2 2 2 المقسوم عليه
1 1 0 0 1 الباقي

الناتج هو : 11001



تحويل العدد الثنائي إلى عدد عشري
سيتم تحويل الأعداد الثنائي إلى أعداد عشرية باستخدام مفهوم قيمة المرتبة حيث نضرب كل رقم من أرقام العدد الثنائي بقيمة المرتبة المقابلة ونجمع الجداءات ونعلم أن قيمة المرتبة الأولى في النظام الثنائي 1 والثانية 2 والمرتبة الثالثة 4 والرابعة 8 وهكذا

مثال : تحويل الرقم الثنائي (1111) إلى عشري باستخدام مفهوم قيمة المرتبة

نكتب : ( 1* 1)+( 1* 2)+( 1* 4)+( 1* 8) = 15

1 + 2 + 4 + 8 = 15

مثال : تحويل الرقم الثنائي (11001) إلى عشري باستخدام مفهوم قيمة المرتبة

نكتب : ( 1 * 1)+( 0 * 2)+( 0 * 4)+(1 * 8) +( 1 * 16 ) = 25

1 + 0 + 0 + 8 + 16 = 25

العمليات المنطقية في النظام الثنائي

AND

القيمة الاولى العملية القيمة الثانية الناتج
0 AND 0 0
0 AND 1 0
1 AND 0 0
1 AND 1 1

NAND

القيمة الاولى العملية القيمة الثانية الناتج
0 NANAD 0 1
0 NANAD 1 1
1 NANAD 0 1
1 NANAD 1 0

OR

القيمة الاولى العملية القيمة الثانية الناتج
0 OR 0 0
0 OR 1 1
1 OR 0 1
1 OR 1 1

XOR

القيمة الاولى العملية القيمة الثانية الناتج
0 XOR 0 0
0 XOR 1 1
1 XOR 0 1
1 XOR 1 0

NOT

القيمة الاولى العملية القيمة الثانية
0 NOT 1
1 NOT 0

يعتبر البت والبايت الحجر الأساسي للحاسوب الي ي .....
يعتبر البت خانة ثنائية واحدة تمثل أصغر وحدة تخزين فهي تحمل قيمة 1 اذا تمت مغنطتها ( الحالة on ) وتحمل القيمة 0 اذا لم تمغنط ( الحالة off) وينشأ عن تجميعها مع الخانات الثنائية ا البت والبايتلاخري القدرة علي تمثيل البايتات التي تتكون بايت واحد من ثمان بتات .. وفي الحقيقة البايت تمثل داخليا بتسع بتات الثمانية منها لتمثيل المعطيات والتاسعة تمثل خانة التحقق parity bit ...
1 1 1 1 1 1 1 1 | 1 ّ|
data المعطيات parity التحقق

وتجري العمليات الحسابية علي ثمان بتات الاولي ويمكن من خلالها تمثيل المحارف characters والرموز symbols او الارقام مثلا حرف A يمثل بــ 01000001 والرمز * بــ 00101010
تسمح هذه الخانات الثمانية بالحصول علي تركيب مختلفة من القيمتين 1 و 0 وذاك ابتداءا من التركيب 0000000 حتي 11111111
فلنقل ان لدينا عددان 123 و 76 فيتم تمثيلها هكذا :
123 76

1 1 0 1, 1 1 1 1 | 0 0 1 1, 0 0 0 1
وعند التخزين : اذا كان عدد البتات اقل من 8 يضاف اليها اصفار ، فمثلا القيمة 1010 تخزن 0000,1010


العدد الثنائي Binary or Base2
--------------
يستطيع الحاسوب ان تميز بين القيمتين 0 و 1 فقط ولذلك كما قلنا يتم تمثيل المعطيات ومعالجتها بنظام الثنائي ذي الاساس 2 وهو نظام يسمح بتمثيل كافة الاعداد بواسطة القيمتين 0 و 1 ( اي نستطيع تخزين احدي القيمتين فى خانة bit واحدة bit = binary digit )
يحمل اي عدد ثنائي قيمة تعتمد علي الموقع النسبي ( فلنقل مثلا هناك 4 خانات من العدد الثنائي في موقع ما ) اول خانة منها اذا كان يحتوي علي 1 يكون قيمته 1*1 والثاني رفع قيمتها الي اثنين ( اذا كان يحمل 1 يكون 1 * 2 والا 0 * 2 ) والثالثة رفع قيمتها الي 3 هكذا والرابعة رفع قيمتها الي 4 ....
2 ^ 1 = 2
2 ^ 2 = 4
2 ^ 4 = 8
2 ^ 8 = 16
2 ^ 16 = 32
2 ^ 32 = 64
2 ^ 64 = 128
( ملحوظة : سنستعمل علامة ^ لعملية الرفع power وعلامة * لعملية ضرب وعلامة / لعملية القسمة ، وعلامة # القيمة التي تحملها الخانة، الرفع مثلا 10^2 = 10 * 10 = 100، 10^4 = 10 * 10 * 10 * 10 = 1000 )

مثلا ناخذ الرقم الثنائي 1101 = 13 اربع خانات ( او اربع بتات متتابعات فى الذاكرة مثلا )

| 1 | 2 | 4 | 8 |
-------------------------------------------------------
1 0 1 1
ويتم حسابها هكذا
1 ^ 1 = 1 اول خانة
0 ^ 2 = 0 ثاني
1 ^ 4 = 4 ثالث
1 ^ 8 = 8 رابع
---------
13 =
اذن الموقع التي توجد فيها البتات الاربع تمثل القيمة 13

واليك مثل آخر الرقم 10001 = 17 خمسة خانات
1 ^ 1 = 1
0 ^ 2 = 0
0 ^ 4 = 0
0 ^ 8 = 0
1 ^ 16 = 16
---------
=17
والموقع التي فيها الخانات تمثل الرقم 17

( لا ينحصر تعامل الحاسوب مع الاعدادالثنائية المؤلفة من ثماني بتات ( خانات ) فقط فهذا الامر يختلف تبعا لبنية المعالج ، المعالج ذو البنية 16 خانة او 32 خانة تستطيع التعامل مع الاعداد المؤلفة من 16 بت او 32 بت بشكل آلي اذا كان نستطيع الحصول من 8 خانات ثنائية علي القيمة 256 فمن خلال 16 خانة يمكن الحصول علي 1-2 ^ 16 = 65635 ومن 32 خانة نحصل علي القيمة 4294967295 )


العدد العشري Decimal or Base10
-------------
كلنا نعرف العدد العشري ونستطيع نعدها كالتالي
0 1 2 3 4 5 6 7 8 9
يعني الرقم 10 يكون الأساس ( كما ان 0 و1 اي الاثنان اساس فى النظام الثنائي )

10 ^ 0 = 0
10 ^ 1 = 10
10 ^ 2 = 100
10 ^ 3 = 1000
10 ^ 4 = 10000
10 ^ 5 = 100000

فلناخذ الرقم 1040 ويكون تمثيله :
| رقم عادي | عشر | مئة | الف |
--------------------------------------------------
0 4 0 1
اول خانة رقم تحت 10 وهي هنا 0 ، والقيمة تكون 10 ^ 0 * 0 والثانية خانة تحمل 10 ^ 1 * القيمة والثالثة تحمل 10 ^ 2 * القيمة والرابعة تحمل 10 ^ 3 * القيمة

10 ^ 0 * 0 = 0
10 ^ 1 * 4 = 40
10 ^ 2 * 0 = 0
10 ^ 3 * 1 = 1000
1040

العدد الستعشري Hexadecimal or BASE16
---------------------------
اممممم
14، هذا رقم عشري وتمثيله بالعدد الثنائي 1110 اما تمثيله فى الستشعري هي E
لأن تمثيل الستشعري هكذا :
F , E , D , C , B , A , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0
لاحظ انه
A = 10
B = 11
C = 12
D = 13
E = 14
F = 15
هـ = ستعشري
16 ^ 0 = 0
16 ^ 1 = 16 = 10هـ
16 ^ 2 = 256 = 100هـ
16 ^ 3 = 4096 = 1000هـ
16 ^ 4 = 65536 = 1000 هـ

اذن عندما نصل الرقم 16 تمثل بـ 10 لانه كما قلنا الاساس هنا 16 وليست 10
ورقم 20 ستعشري تساوي 32 ( 16 * 2 ) في العدد العشري...
100 ستعشري تساوي 256 ( 16 ^ 16 = 16 * 16 وليست 10 * 10 )
ولناخذ رقم 1211 ( ستعشري ونري مقابلها فى النظام العشري يطلع كم ؟ )
| 1 | 16 | 256 * 2 | 4096 |
--------------------------------------------
1 1 2 1
16 ^ 0 * 1 = 0
16 ^ 1 * 1 = 16
16 ^ 2 * 2 = 512
16 ^ 3 * 1 = 4096
= 4625

النظام الثماني Octal or Base8
--------------------------------------
هذا النظام الاساس فيها 8 وهو قليل الاستخدام
0 ، 1 ، 2 ، 3 ، 4 ،5 ، 6 ، 7 ، 8
8 ^ 0 = 0
8 ^ 1 = 16 = 20 ثماني
8 ^ 2 = 64 = 100 ثماني
8 ^ 3 = 512 = 1000 ثماني
الخ

----------------------------------------------
التحويل بين بعض انظمة العد :
التحويل من العشري الي الستشعري :
----------------------------------------------
للتحويل اجر عملية القسمة علي 16 بشكل متكرر إلي أن يصبح ناتج القسمة الصحيح بدون باق مساويا صفر، وعنئذ يمثل باقي القسمة الصحيح في كل مرة رقما ستشعريا ، الباقي الاول يمثل الرقم الستعشري الادني والاخير يمثل الرقم الستعشري
الاعلي فمثلا لدينا الرقم 42936 نحوله الي مقابله الستعشري
العملية ناتج القسمة باقي القسمة الصحيح الرقم الستعشري
42936/16 2683 8 8 ( الرقم الادني )
2683/16 167 11 B
167/16 10 7 7
10/16 0 10 A ( الرقم الاعلي )
فالرقم العشري 42936 مقابله الستعشري A7B8
( عادة تميز الرقم الستعشري فى نظام ويندووز باضافة حرف H علي آخره واما فى انظمة يونكس/لينكس فتضاف x0 ( صفر ثم حرف x أمام الرقم )، أما عندما تبرمج في دلفي تضاف علامة $ )

التحويل من الستعشري الي العشري
----------------------------------------------
لتحويل الرقم الستعشري ابدا من الرقم الأعلي واضرب كل رقم بالعدد 16 ثم اجمع النتائج خلال ذلك وتذكر انه يتم تحويل الارقام الستعشرية من A الي F الي مقابلها العشري من 10 حتي 15 فمثلا نحول الرقم الستعشري A7B8 الي مقابله العشري
ناخذا الرقم الاول وهي A ونضربه بـ 16 10 * 16 = 160
نضيف الرقم الثاني 7 اليه (160+7=167) ثم نضربه بــ 16 167 * 16 = 2672
نضيف الرقم الثالث B وهي (2672+11=2683) ثم نضربه بـ 16 2683 * 16 = 42928
ثم نضيف الرقم التالي وهي 8 42928+ 8 = 42936


التحويل من عشري الي الثنائي
---------------
اقسم العدد الي 2 اذا لم يبق باقي من القسمة ناخذ رقم 0
ثم ناخذ ناتج القسمة السابقة ونقسمها الي 2 ايضا ونري اذا كان هناك باقي القسمة ام الا، واذا كان هناك باقي القسمة ناخذ رقم 1 والا ناخذ رقم 0 وهكذا نستمر في القسمة حتي لا يبقي هناك ناتج
مثلا نحول العدد 238 الي مقابله الثنائي
238 / 2 = 119 : 0
119 / 2 = 59 : 1
59 / 2 = 29 : 1
29 / 2 = 14 : 1
14 / 2 = 7 : 0
7 / 2 = 3 : 1
3 / 2 = 1 : 1
1 / 2 = : 1
0 / 2 : 0
= 11101110 لاحظ اننا حذفنا اول صفر وهي لا قيمة لها اصلا ...

التحويل من الثنائي الي العشري
=-----------------------
ناخذ الرقم فى اقسي اليسار وننظر لترتيبها ثم نرفعها
مثلا 10110
2 ^ 4 * 1= 16
2 ^ 3 * 0 = 0
2 ^ 2 * 1 = 4
2 ^ 1 *1 = 2
2 ^ 0 * 0 = 0
= 22


وللعلم انا نقلت هذه المشاركه للفائده
مكننا من خلالها تمثيل المعطيات وشكرا

نظام العد الثماني وأنظمة التحويلات

يعتبر نظام العد الثماني حلقة وسطي بين نظام العد السادس عشري ونظام العد الثنائي ، وهو كغيره من الأعداد يتكون من ثمانية أرقام هم : 0 ، 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 فقط ، كما أن القيمة المكانية لآى عدد تساوي = 8 أضعاف الخانة التي تقع علي يمينه

فمثلاُ

1 ، 8 ، 64 ، 512 ، 4096 ، 32768 ، ......

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


تذكر أن أى قيمة أس 0 =1

ويمكنك أن تري علاقة بسيطة بين كل من نظام الأعداد الثماني ونظام الأعداد الثنائي.

ولعل ميزة النظام الثماني هو سهولة التحويل من النظام الثماني إلي النظام الثنائي وبالعكس كما يلي

نقسم الأعداد الثنائية لثمانيات

7
6
5
4
3
2
1
0

111
110
101
100
011
010
001
000


ويصبح العد كما يلي :



التحويل بين النظامين الثماني والعشري

20 ثماني = 8 x 2 + 0 x 1 = 8 + 0 =8 عشري .

203 ثماني = = 64 x 2 + 8 x 0 + 3 x 1 128 + 0 + 3 = 131 عشري .

375 ثماني = 64 x 3 + 8 x 7 + 8 x 5 = 192 + 56 + 40 = 253 عشري .



وللتحويل من النظام العشري للنظام الثماني نوالي القسمة علي 2 مع حمل الباقي

مثال :

حول العدد العشري 254 إلي عدد ثماني :



باقي القسمة
القسمة علي 8
العدد
نوالي القسمة علي 8 فنجد أن 254 ÷ 8 = 31 و الباقي 6 أو

=31 × 8 + 6

31 ÷ 8 = 3 × 8 + 7

7 ÷ 8 = 0 × 8 + 7

نقرأ السلسلة من أسفل لأعلي أى أن 254 العشري = 376 ثماني

6
8
254

7
8
31

3
8
3


الطريقة الثانية :

للتحويل من النظام العشري للنظام الثماني نوالي طرح سلسلة الأعداد التالية :

القيم المكانية للعدد الثماني


خ6
خ5
خ4
خ3
خ2
خ1
خ0

262144
32768
4096
512
64
8
1


نبحث في الجدول عن أقرب عدد للعدد 254 فنجده 64 و نستمر في طرح هذا العدد فنجده 3 × 64 + 62

أى أن خ2 = 3 و الباقي 62 ثم

نوالي طرح 8 من 62 فنجده = 7 × 8 + 6

أى أن خ1 = 7 و الباقي 6

و بالطبع 6 = 6 × 1

= 6

و بالتالي فالعدد العشري 254 = 376 ثماني



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

نظام العد الذي نستخدمه في حياتنا اليومية يسمى نظام العد العشري، نقوم فيه بترتيب الأرقام بجانب بعضها البعض وتكون الأرقام عبارة عن 0 و 1 و .. و 9، والرقم الأول يحدد قيمة الآحاد والثاني يحدد قيمة العشرات فالمئات، في كل مربع نقوم بوضع قيمة ما نضربها في قيمة الخانة ونجمع الناتج لنحصل على الرقم النهائي فمثلا 365 يتم حسابه كالآتي :

1 10 100
5 6 3

العدد = 1 × 5 + 10 × 6 + 100 × 5

الأمر لا يختلف كثيرا في نظام العد الثنائي، إلا أنك لا تستخدم إلا الرقمان 0 و 1 لتحديد قيمة كل خانة، وقيمة كل خانة تختلف في تسلسلها عن قيم الخانات في نظام العد الستعشري، فهي تكون عبارة عن 1 ثم 2 ثم 4 ثم 8 وهكذا في كل مرة تضرب الرقم 2 في العدد الأخير لتحصل على العدد التالي، في المثال السابق كان العدد الذي أخذناه هو 365 أما نظيره في نظام العد الثنائي فهو 101101101 دعنا نتحقق من ذلك :

1 2 4 8 16 32 64 128 256
1 0 1 1 0 1 1 0 1

العدد = 1 × 1 + 2 × 0 + 4 × 1 + 8 × 1 + 16 × 0 + 32 × 1 + 64 × 1 + 128 × 0 + 256 × 1
= 1 + 4 + 8 + 32 + 64 + 256
= 365

يقوم الكمبيوتر بجميع عملياته باستخدام نظام العد الثنائي، لأنه يعطي كل خانة أحد قيمتين فقط إما 0 أو 1 وذلك عن طريق التمييز بين عمليتين فيزيائيتين تحدثان داخل الكمبيوتر هما توصيل التيار ( 1 ) وقطع التيار ( 0 )، وفي الأقراص الصلبة تخزن المعلومات في صورة مغناطيسات صغيرة منتشرة عى سطح من مادة خاصة ( فيرومغناطيسية ) وهي تميز أيضا بين حالتين فقط الأولى عندما يكون اتجاه قطب المغناطيس الصغير الموجب إلى الأعلى، والحالة الثانية هي الحالة المعاكسة، لهذا السبب فإن الكمبيوتر لا بد له من استخدام نظام العد الثنائي.

تخزين البيانات
في الأعداد العشرية إذا قلنا أننا نستطيع كتابة 5 خانات فهذا يعني أننا نستطيع كتابة الأرقام من 0 إلى 99999 أي تفسير ذلك أننا نستطيع ترتيب الأرقام من 0 إلى 9 ( عشرة أرقام ) في خمس خانات فذلك يعني أننا نستطيع تغيير الأرقام وترتيبها للحصول على العديد الإحتمالات، عدد هذا الإحتمالات هو 10 × 10 × 10 × 10 × 10 لأن كل خانة تحتمل 10 احتمالات، وكل احتمال منها يحتمل عشر احتمالات معه في الخانة المجاورة وهكذا حتى الخانة الأخيرة، وهذا يعني أننا نمتلك عدد من الاحتمالات يساوي 10 أس 5 أي عدد الأرقام في كل خانة أس عدد الخانات، ويكون الناتج هو 100000 احتمال كل منها يعبر عن رقم وهذه الأرقام تبدأ من 0 إلى 99999.

الأمر ينطبق هنا أيضا على الأعداد الثنائية، فإذا قلنا أن عدد الخانات هو 5 فإن عدد الإحتمالات الكلية = عدد الإحتمالات في كل خانة أس عدد الخانات = 2 أس 5 = 32 وهي 32 احتمال تعبر عن الأرقام من 0 إلى 31، ويسمى عدد الخانات بطول الرقم، فالمتغيرة أو العداد أو أي شيء طوله 5 يعني أنه يتكون من 5 خانات ثنائية.

وقد تم الإتفاق على أن كل خانة تسمى ( بت ) وكل 8 خانات ( 8 بتات ) تسمى بايت، والبايت الواحد عبارة عن خانة كبيرة عدد احتمالاتها هو 2 أس 8 = 256 أي أنها تأخذ الأرقام من 0 إلى 255، وقد تم الإتفاق على أن يتم إعطاء كل رقم وحرف ورمز قيمة مقابلة بين الرقمين 0 و 255، حسب ما يسمى بصفحة المحارف، أشهر صفحات المحارف الإنجليزية هي صفحة الأسكي ASCII والأنسي ANSI، ولكن هذا العدد من الخانات في جدول الأسكي سرعان ما يمتلأ بالحروف والأرقام، فلا يبقى أماكن شاغرة فيه للرموز الإضافية كالرموز العربية ورموز اللغات الأخرى، وهنا قامت كل لغة بعمل صفحة محارف خاصة بها، وقامت عدة هيئات عربية بإنشاء صفحات محارف مختلفة منها صفحة محارف DOS العربي، وصفحة محارف صخر إلا أن أكثرها انتشارا هي صفحة محارف windows العربية ورمزها windows-1256 وهنالك أيضا صفحة محارف ISO العربية، وبعد ظهور انترنت أصبح أمر صفحات المحارف المختلفة مربكا جدا، وسبب العديد من المشاكل، فمثلا إذا فتحت صفحة ما مكتوبة على أساس صفحة محارف عربية وفتحتها في متصفح صيني فسوف تظهر الرموز الصينية لأن الرقم 23 فرضا يشير إلى حرف أ العربي في جدول الرموز العربي، ويشير إلى الحرف ! في جدول الرموز الصيني، فتحدث التضاربات، والمشكلة الأكبر هي اختلاف صفحات المحارف للغة الواحدة كما في اللغة العربية، ولحل هذه المشكلة تم عمل هيئة لتوحيد صفحات محارف العالم في صفحة محارف وحيدة وضخمة بحيث تسع جميع الحروف والرموز المستخدمة في العالم، وبالتالي لن تحصل التضاربات لأن لكل حرف رمز مختلف وتسمى صفحة المحارف هذه بصفحة محارف اليونيكود UNICODE

ليست هناك تعليقات:

إرسال تعليق