☰ خطة العام · تكنولوجيا المعلومات والاتصالات (بالعربية)

مراجعة ومشروعك الصغير

الأسبوع 15 · مراجعة الفصل الدراسي الأول (الوحدتان ١ و٢) ومشروع صغير من تصميمك · 3 دروس
1

مراجعة: النظم العددية والتحويل بينها

ICT Secondary 3 Term 1, Review: pp. 5–86
الهدفراجع الرقم والخانة والنظام الثنائي والسداسي عشر والتحويلات الست بأعداد جديدة، وتحقق من كل جواب بالرجوع.
كلمات جديدة
قيمة الخانة ⁦(place value)⁩ · قيمة خانة في العدد: قوة للأساسالأساس (base) · عدد رموز النظام: ٢ أو ١٠ أو ١٦التحقق بالرجوع ⁦(check by going back)⁩ · حوّل الجواب راجعًا؛ ويجب أن تصل إلى العدد الذي بدأت منهالبايت (byte) · ٨ بتات، أي رمزان سداسيان عشريان
الشرح

هذه الوحدة الأولى في صفحة واحدة. الرقم رمز واحد، والعدد يتكون من أرقام؛ وتأتي قيمته من قيم الخانات التي هي قوى الأساس (الأسبوع الأول). ويستعمل الحاسوب 0 و1 فقط لأن للدوائر حالتين. والبت رقم ثنائي واحد، والبايت ٨ بتات، وn من البتات تصنع ٢ أس n نمطًا، وكل كيلوبايت ١٬٠٢٤ بايتًا (الأسبوع الثاني). وفي النظام الثنائي قيم الخانات 1 و2 و4 و8 وهكذا؛ ولنتحول من العشري إلى الثنائي نقسم على ٢ ونقرأ البواقي من الأخير إلى الأول (الأسبوع الثالث). وللنظام السداسي عشر ستة عشر رمزًا هي 0 إلى 9 وA إلى F، وقيم خاناته 1 و16 و256؛ ولنتحول من العشري نقسم على ١٦ ونكتب البواقي من ١٠ إلى ١٥ حروفًا من A إلى F (الأسبوع الرابع). ولأن ١٦ = ٢ أس ٤ فكل رمز سداسي عشر هو أربع بتات، فنحوّل بين السداسي عشر والثنائي في مجموعات من أربع بتات من اليمين (الأسبوع الخامس). وبرنامجا التحويل في الأسبوعين السادس والسابع يستدعيان دوال جاهزة تقوم بهذه التحويلات، وتعطي السداسي عشر بأحرف صغيرة، وتفشل مع المدخل الخاطئ، ولذلك يفحص البرنامج الجيد النص أولًا. وكل جواب في هذه الصفحة نتحقق منه بالرجوع.

التحويلالطريقة
من الثنائي إلى العشرياضرب كل بت في قيمة خانته 1 و2 و4 و⁦8 …⁩ واجمع
من العشري إلى الثنائياقسم على ٢ مرة بعد مرة؛ واقرأ البواقي من الأخير إلى الأول
من السداسي عشر إلى العشرياضرب كل رمز في 1 و16 و⁦256 …⁩ واجمع
من العشري إلى السداسي عشراقسم على ١٦؛ والبواقي من ١٠ إلى ١٥ هي A إلى F؛ واقرأ من الأخير إلى الأول
من السداسي عشر إلى الثنائيأربع بتات لكل رمز
من الثنائي إلى السداسي عشرمجموعات من أربع بتات من اليمين، مع الحشو من اليسار
أمثلة محلولة
القسمةخارج القسمةالباقي
⁦52 ÷ 2⁩260
⁦26 ÷ 2⁩130
⁦13 ÷ 2⁩61
⁦6 ÷ 2⁩30
⁦3 ÷ 2⁩11
⁦1 ÷ 2⁩01
العدد العشري ٥٢ إلى الثنائي خطوة خطوة. اقرأ البواقي من الأخير إلى الأول: 110100.
التحويلالجوابالتحقق بالرجوع
عشري 52 إلى ثنائي110100⁦32 + 16 + 4 = 52⁩
ثنائي 100111 إلى عشري39قسمة 39 على 2 مرة بعد مرة تعطي 100111
سداسي عشر 3B7 إلى عشري951⁦951 ÷ 16 = 59⁩ والباقي 7؛ ⁦59 ÷ 16 = 3⁩ والباقي ⁦11 (B)⁩؛ فيعطي 3B7
عشري 1500 إلى سداسي عشر5DC⁦5 × 256 + 13 × 16 + 12 = 1,500⁩
سداسي عشر 9E إلى ثنائي⁦1001 1110⁩9 هو 1001 وE هو 1110
ثنائي 1110101 إلى سداسي عشر75 (من 0111 0101)⁦7 × 16 + 5 = 117 = 64 + 32 + 16 + 4 + 1⁩
ست تحويلات بأعداد جديدة، ومع كل منها تحققه.
Php
1echo decbin(52), " ", bindec("100111"), " ", hexdec("3B7"), " ", strtoupper(dechex(1500)), "\n";
2echo str_pad(decbin(hexdec("9E")), 8, "0", STR_PAD_LEFT), " ", strtoupper(dechex(bindec("1110101")));
Output
110100 39 951 5DC
10011110 75
التحققات نفسها في PHP. تعطي الدوال الجاهزة السداسي عشر بأحرف صغيرة، فتصنع strtoupper أحرفًا كبيرة، وتعيد ⁦str_pad⁩ الأصفار من اليسار. وأسطر الناتج من تشغيله فعلًا.
Vb
1Console.WriteLine(Convert.ToString(52, 2))
2Console.WriteLine(Convert.ToInt32("100111", 2))
3Console.WriteLine(Convert.ToInt32("3B7", 16))
4Console.WriteLine(Convert.ToString(1500, 16).ToUpper())
Output
110100
39
951
5DC
التحققات نفسها في ⁦VB.NET⁩ داخل برنامج كونسول صغير. يعطي ⁦Convert.ToString(1500, 16)⁩ أحرفًا صغيرة، فيصنع ToUpper أحرفًا كبيرة. والمدخل الخاطئ يفشل: ⁦Convert.ToInt32("1021", 2)⁩ يرفع FormatException لأن 2 ليس رمزًا ثنائيًا، أما ⁦bindec("1021")⁩ في PHP فتتجاهل 2 بهدوء (مع إشعار) وتعطي ٥.
نشاط الفصل

حوّل على الورق: العشري ٧٥ إلى ثنائي، والثنائي 101101 إلى عشري، والسداسي عشر 2F8 إلى عشري، والعشري ٩٠٠ إلى سداسي عشر، والسداسي عشر C5 إلى ثنائي. وتحقق من كل جواب بالرجوع.

تدرّب
1
كم نمطًا تصنع ٧ بتات؟
2
كم بتًا تحتاج قائمة من ٢٠ اختيارًا إذا نال كل اختيار نمطه الخاص؟
3
كم رمزًا سداسيًا عشريًا يصنع بايتًا واحدًا؟
4
لماذا ينبغي لبرنامج التحويل أن يفحص مدخله؟