كود آي:
عفوا اخي واعتذر عن التأخر، لكن هذه الأيام مشغول جدا حد الإنقطاع
بالنسبة لسؤالي عن الداتا جريد فيو
هل يمكنك عمل برنامج بسيط جدا، عبارة عن واجهة وفيها داتا جريد فيو تملؤها بنفس الطريقة التي تستخدمها لملئها في برنامجك حتى اسطيع رؤية هذه الطريقة ومحاولة التعديل عليها؟
اعتذر ان كنت سأتعبك بهذا الطلب لكنه ضروري حتى افهم طريقة ملئك له بالضبط
واعتذر عن التأخر في الرد، وأيضا ربما اتأخر قليلا في الرد لكن ان شاء الله تعالى سأتفرغ لبعض الوقت ولو لوقت قليل بعد هذا الأسبوع ان شاء الله تعالى وسأرد ان شاء الله حينها على اسئلتكم في تلك الفترة
-------------------------------------------
جدو الحائر:
للتحويل من 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 ثم العكس لأتأكد انك فهمت
انتظرك

رد مع اقتباس

المفضلات