كود آي:

عفوا اخي واعتذر عن التأخر، لكن هذه الأيام مشغول جدا حد الإنقطاع

بالنسبة لسؤالي عن الداتا جريد فيو

هل يمكنك عمل برنامج بسيط جدا، عبارة عن واجهة وفيها داتا جريد فيو تملؤها بنفس الطريقة التي تستخدمها لملئها في برنامجك حتى اسطيع رؤية هذه الطريقة ومحاولة التعديل عليها؟

اعتذر ان كنت سأتعبك بهذا الطلب لكنه ضروري حتى افهم طريقة ملئك له بالضبط

واعتذر عن التأخر في الرد، وأيضا ربما اتأخر قليلا في الرد لكن ان شاء الله تعالى سأتفرغ لبعض الوقت ولو لوقت قليل بعد هذا الأسبوع ان شاء الله تعالى وسأرد ان شاء الله حينها على اسئلتكم في تلك الفترة

-------------------------------------------

جدو الحائر :

للتحويل من binary الى decimal والعكس يتم عمل الاتي:

لو كان لديك رقم بينري هكذا مثلا:

1011010110

كيف يتم تحويله؟

ابدأ من يمينه

خذ الرقم الاول وهو الصفر واضربه في 2 أس صفر

ثم خذ الرقم الذي بعده وهو اواحد وضربه في 2 أس 1

ثم الذي بعده واضربه في 2 اس 2

وهكذا حتى ينتهي الرقم كله ثم اجمع مجموع النواتج التي ظهرت لك

اذن ناتج هذا الرقم يصبح:

0 * 2 ^ 0 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 1 * 2 ^ 4 + 0 * 2 ^ 5 + 1 * 2 ^ 6 + 1 * 2 ^ 7 + 0 * 2 ^ 8 + 1 * 2 ^ 9

= 726

طيب نريد التأكد الان من ان هذا التحويل صحيح وذلك بالتحويل من decimal الى binary ماذا نفعل؟

نقسم الرقم الـ decimal على 2 ثم نكتب الناتج وباقي القسمة، ثم نأخذ الناتج هذا ونقسمه على 2 ونكتب الناتج وباقي القسمة وهكذا بهذه الطريقة (بالمناسبة ان كان ناتج القسمة فيه كسر فمعنى ذلك ان الباقي = 1 دون أن تتعب نفسك في حساب الباقي ^^، اكتب فقط الرقم بدون الكسر واكتب ان الباقي يساوي واحد):

726 / 2 = 363 والباقي 0
363 / 2 = 181 والباقي 1
181 / 2 = 90 والباقي 1
90 / 2 = 45 والباقي 0
45 / 2 = 22 والباقي 1
22 / 2 = 11 والباقي 0
11 / 2 = 5 والباقي 1
5 / 2 = 2 والباقي 1
2 / 2 = 1 والباقي 0 -> لا تتوقف عند هذا الحد، يجب ان تقسم الواحد الأخير المتبقي على 2 هو الاخر
1 / 2 = 0 والباقي 1

الان خذ البواقي كلها من أعلى الى اسفلها ورصها من اليمين الى اليسار تصبح:

1011010110

وهو نفس الرقم الذي حسبنا قيمته قبلا

للتحويل من binary الى hex

لدينا الرقم السابق:

1011010110

خذ كل اربع ارقام من جهة اليمين الى اليسار أيضا مع بعضهم واحسبهم مع بعضهم بنفس طريقة التحويل من binary الى decimal

اذن سيتم التقسيم هكذا:

0110
1101
سيتبقى لدينا رقمان في النهاية، نضع يسارهم صفرين (صفر على جهة اليسار لا يؤثر في قيمة العدد كما نعرف ^_^)
0010

الان احسب القيمة للأربع أرقام الاولى:

0 * 2 ^ 0 + 1 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 = 6

نحسب القيمة للأربع ارقام الثانية:

1 * 2 ^ 0 + 0 * 2 ^ 1 + 1 * 2 ^ 2 + 1 * 2 ^ 3 = 13

طيب 13 كم تكتب في نظام ال hex ؟

في نظام الhex نكتب الأرقام كما هي من 0 الى 9 ثم ان كان الناتج ب 10 نكتبه A ثم 11 نكتبه B وهكذا حتى نكتب 15 بـ F

الان لدينا ناتج = 13 اي ما يكافئ D بنظام الHex

اذن: ناتج الأربع أرقام الثانية = D

نحسب قيمة الأربع أرقام الثالثة:

0 * 2 ^ 0 + 1 * 2 ^ 1 + 0 * 2 ^ 2 + 0 * 2 ^ 3 = 2

الان حسبنا جميع النواتج، نقوم بأخذ كل النواتج من الاعلى للأسفل ونرصها بجانب بعضها من اليمين الى اليسار ليصبح الناتج:

2D6

للتحويل من hex الى binary نأخذ كل رقم في ال Hex ونحوله الى مقابله في الBinary فقط بنفس طريقة القسمة السابقة التي شرحتها مع التحويل من decimal الى binary او بمجرد النظر

طبعا بمجرد النظر أسهل بكثير وستختصر الوقت لو اعتدت عليها، اما ان خفت أن تخطئ فحولها بالكتابة بنفس الطريقة

يجب ان تعرف ان أي رقم في Hex يمثل بأربع ارقام في الbinary، فإذا قمت بقسمته ولم يكمل هذه الأربعة أرقام فزد عدد من الأصفار على يسار الرقم حتى يصبح الرقم 4 ارقام بالbinary


مثلا نحسب ال6

6 / 2 = 3 والباقي 0
3 / 2 = 1 والباقي 1
1 / 2 = 0 والباقي 1

خذ الرقم من أعلى الى اسفل ورصه من اليمين لليسار يصبح:
110

الناتج 3 ارقام فقط، وقلنا يجب ان يمثل الرقم بأربع ارقام

اذن نضع صفرا على يسار الرقم ليصبح: 0110

الان نحسب ال D ولكي نحسبها نحولها الى أصلها اولا، قلنا أن ال D تعني 13

اذن نقسم ال 13

13 / 2 = 6 والباقي 1
6 / 2 = 3 والباقي 0
3 / 2 = 1 والباقي 1
1 / 2 = 0 والباقي 1

خذ الرقم من أعلى الى اسفل ورصه من اليمين لليسار يصبح:
1101

نكرر نفس الخطوات السابقة مع ال 2 فتصبح 0010

نضع النواتج مرصوصة بجانب بعضها بنفس ترتيبها في الرقم الhex فتصبح 001011010110

طبعا يوجد صفرين على اليسار فلا يوجد منهما فائدة، نقوم بحذفهما فيصبح الناتج 1011010110 والذي هو نفسه الرقم الأصلي

اما للتحويل من binary الى oct والعكس فبنفس طريقة التحويل من binary الى hex والعكس تماما لكن بدل من أن تأخذ كل اربعة ارقام binary وتحولهم الى الرقم المكافئ لهم في ال hex، تقوم بأخذ كل 3 أرقام فقط من الرقم الbinary وتحولهم الى المكافئ لهم في ال oct بنفس الطريقة تماما وبنفس المعادلة

وعند القسمة تأخذ كذلك كل رقم من الرقم ال oct ككل وتقوم بقسمته على 2 وتكمله بالأصفار من جهة اليسار حتى يتم تمثيله بثلاثة ارقام بدلا من 4 كما كنا نفعل تماما في ال hex

اما للتحويل من أي نظام من هذه الانظمة الى الاخر فأفضل ما تفعله هو التحويل الى النظام ال binary اولا ثم التحويل الى النظام الاخر

فمثلا لو اردت التحويل من oct الى hex قم بتحويل الرقم من oct الى binary ثم من binary الى hex

بالمناسبة اريد أن أتأكد من استيعابك للدرس لذا عليك ان تقوم بتحويل الرقم الذي عملت عليه في المثال من binary الى oct ثم العكس لأتأكد انك فهمت

انتظرك