الأحد، يناير 10، 2010

two's complement

ال two's complement هي طريقة نعبر بيها على الارقام السالبة بالbinary، والسبب اننا لو عايزين نطرح رقمين من بعض في الدوائر الكهربية او البروسيسور، الاسهل اننا نعاملهم على اساس الجمع، يعني نجمع القيمة السالبة للرقم المطروح على الرقم الموجب، يعني:

(1-) + 2 = 2-1

لو نجحنا ننفذ الفكرة دي، هنوفر كتير اوي على البروسيسور وحجمة هيبقى اصغر... هشرح ال two's complement الاول وبعد كده هثبت ازاي الكلام ده اتحقق.

لو اخدنا نظام ال 3 bits، اي كمبيوتر عموما عنده حاجة اسمها ال registry اللي هي عدد الbits اللي الكمبيوتر بيتعامل معاها، انا هعتبر دلوقتي الregistry عبارة عن 3 bits بس وده رقم بسيط اوي، يعني الكمبيوتر يقدر يعبر بيهم عن الارقام من 0 ل 7، يعني 3^2 قيم مختلفة:
binary | decimal

0 | 000
1 | 001
2 | 010
3 | 011
4 | 100
5 | 101
6 | 110
7 | 111

لو هنستخدم نظام اسهل الاول من ال two's complement، وهو نظام ال signed binary، هنعبر بيه عن نفس عدد القيم، من 3- الى 3، عن طريق اننا بنعتبر اول bit من الشمال هي الاشارة، موجب لو صفر، سالب لو واحد:

binary | decimal

0 | 000
1 | 001
2 | 010
3 | 011
0- | 100
1- | 101
2- | 110
3- | 111

مشكلة النظام ده ان فيه صفرين، صفر موجب و صفر سالب، وفيه مشاكل في تصميم الهاردوير، الكلام ده كله موجود في الفيديو اللي تحت، فيه نظام تاني اسمه ال one's complement، فيه نفس المشاكل وبرده مشروح في الفيديو تحت الجزء الاول، انا مش هشرحه.

المهم نظام الtwo's complement، علشان نجيب ال complement او المرافق لاي رقم، قيمته السالبة يعني، مثلا رقم 2:
010

نجيب ال one's complement بتاعه، نقلب كل صفر يبقى واحد، وكل واحد يبقى صفر:
101

علشان الكلام ده يبقى two's complement، نزود عليه واحد:
1
101
001 +
ــــــــــ
110
دلوقتي 110 بتمثل القيمة 2-، علشان اثبت ده، مثلا لو عايزين نطرح 2 من 3، زي ما قلت في الاول:

(2-) + 3 = 3-2

يبقى احنا عايزين نجمع 3 (011) على 2- (110):

11
011
110 +
ــــــــ
001

النتيجة 1 (001)، لاحظ ان اخر واحد استلفناه في عملية الجمع مش ظاهر ف النتيجة، ده لانه حصله overflow، لان الريجستري انا معتبرها من الاول 3 bits، فكده مافيش مكان للbit الرابعة، وده المطلوب لانه لو ظهر في النتيجة هتبقى نتيجة غلط، في ال two's complement، ال 3 bits بتعبر برده عن سبع قيم، من 4- الى 3، ومشكلة الصفر اتحلت، دلوقتي شكل واحد بيعبر عن الصفر، مش شكلين، لاحظ ان الرقم في نصف الجدول بالظبط بيعبر عن اقل قيمة سالبة اللي هي هنا سالب اربعه:
binary | decimal

0 | 000
1 | 001
2 | 010
3 | 011
4- | 100
3- | 101
2- | 110
1- | 111

الفيديوهات فيها نفس الشرح بس بتفصيل اكتر شوية:

الأحد، يناير 03، 2010

النقاب غير اسلامي

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

ليه ربنا خلقنا كل واحد ليه ملامح تميزه عن الأخر، ليه اتخلقنا كل واحد بوجه مختلف عن الأخر، دي نعمة المفروض نقدرها، لو كلنا شكل واحد كان القاتل لا يحاسب، هتحاسب مين؟، كان السارق هيهرب بسريقته، مين اللي سرق؟ كان الغش اتنشر، اللي مش مذاكرة اختها تروح الامتحان بدلها.... ليه تحريم نعمة ربنا؟

ليه في تعبيرات مختلفة للوجه الواحد، ليه وانا سعيد شكلي مختلف عن وانا حزين، وانا خائف وجهي مختلف عن وانا متحمس، ايه حكمة ربنا من ده؟

ليه بنحرم الوجه؟

ليه بنعتبر المرأة عيب؟ لو عايزين نتقدم ويكون لينا قيمة ف العالم ده، يجب ان نعامل بعضنا باحترام اكثر، يجب ان ينخفض مستوى الكره في قلوبنا، والظلم في تعاملنا، المرأة ظلت مظلومة لفترة طويلة في المجتمع ده، مظلومة من الرجال وبعض النساء انفسهم، من يصيحون في الاعلام الان دفاعا عن نقاب انا مؤمن مئه بالمئه انه حرام.

البلد فيها مصائب كتيير وقضايا اكبر من قضية النقاب، حين يحلل الله شيئ، ده مش عشان نزايد عليه، النقاب مش مذكور في اي نص اسلامي، النقاب ليس اسلامي، النقاب تشريع للجريمة. وتمكين للمجرم. كفاية.