delphi4arab منتديات دلفي للعرب

نسخة كاملة : Bug في الآلة الحاسبة Calc الخاصة بوينداوز 7
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم و رحمة الله و بركاته

لا أعرف ان كان القسم المناسب لطرح مثل هذه المواضيع ..
لقد صادف و وجدت Bug في الآلة الحاسبة Calc الخاصة بوينداوز 7
وعليكم السلام ورحمة الله وبركاتة

نعم صادفت مثل هذه المشكلة ...
وعلى ما انض السبب انه يتعاملون مع ShortInteger وليس Byte
حيث اعلى قيمة بالموجب 127 واقل قيمة -128 ...
كذلك الحال مع بقية الانواع ( WORD,DWORD,QWORD )

ربما يعلمون بوجود مثل هذا الخطا ان كان خطاً ...

واضن السبب :
اننا في الـ Decmal نستعمل العدااد ذات الإشارات وليس كما في الـ Hex لا توجد إشارات
لذلك هم يستعملون الاعداد الصحيحه عندما نختار الـ Dec و العدد بدون إيشارات بالـ Hex

----
ربما يوجد خطأ املائي في كتابة التعيلمتين ( Lsh , Rsh ) ... بينما تكتب ( Shr , Shl )
لا يهم كيف يتم التعامل مع الاعداد (موجب أم سالب)
البايت دائما موجب +

إقتباس :ربما يوجد خطأ املائي في كتابة التعيلمتين ( Lsh , Rsh ) ... بينما تكتب ( Shr , Shl )
لا يعتبر خطأ :
LSH = Left Shift
RSH = Right Shift
إقتباس :لا يهم كيف يتم التعامل مع الاعداد (موجب أم سالب)
البايت دائما موجب +
هممم ...
فعلاً ... يوجد بكلامك جزء من الصحة , وهذه النقطة يوجد بها قليلاً من الغموض P:
لكن لا أضن انه Bug ...

وجدت نفس هذا النظام متبع في OllyDBG :
كود :
http://im31.gulfup.com/k4x1c.png

ماذا نسمي الامر الآن Bug ... ام شيء آخر Smile

-----
لاحظ في الصورة المرفقة ... فيه القيمة التي كنا نتوقع ظهورها ... حيث الـ 255 = FF .... في خانة الـ Unsigned

كذلك لاحظ انه عندما تكتب العدد 25 من نوع Byte وبعد ذلك تضغط على الزر + ستجد انه تم إضافة بتات للقيمة البايت ...
وهذا يشير إلى ان الآلة الحاسبة تحسب حساب الإشارة على حساب الـ Byte في الـ Decmal ... وعندما نحول القيمة للـ Hex
فينه يتم التحويل على حسب القيمة الموجودة في الـ Bin
السلام عليكم...

ليس في الأمر علة (bug) لأن الآلة الحاسبة تتعامل مع الأعداد باعتبارها أعداد ذات إشارة (Signed Numbers) بما في ذلك البايت (Byte) أي أن القيم في هذه الحالة تتراوح بين -128 و 127 و بالتالي لا يمكنك وضع القيمة 255 في البايت (أو بالأصح سيتم اعتبار أنها -1 لأن جميع البتات ستكون قيمتها 1).

إقتباس :لا يهم كيف يتم التعامل مع الاعداد (موجب أم سالب)
البايت دائما موجب +

إذا كانتت البايت بمفهوم الحجم (8 بت) فهناك بايت سالبة، و هذا النوع (Signed Byte) أي البايت ذات الإشارة موجود في كل لغات البرمجة الحديثة، فهو يعرف في لغات الـ DotNET باسم SByte و في Delphi باسم Shortint.

و السلام.
حسنا ان كانت ال Calc تتعامل مع البايت على أنه signed
أليس من المفروض أن يتم ترك الحرية للمستخدم في تحديد signed أو Unsigned ؟ (مثل Olly)
ربما الامر له علاقة بالـ cp1 او cp2 و الله اعلم
إقتباس : حسنا ان كانت ال Calc تتعامل مع البايت على أنه signed
أليس من المفروض أن يتم ترك الحرية للمستخدم في تحديد signed أو Unsigned ؟ (مثل Olly)

نعم , هذا ما يفترض ... وخصوصاً انه يوجد نمط "برمجي".
انا ضننت انه يوجد خيارات ... لتغيير لكن لم اجد شيئاً !! .

لقد اطلعت على ملف المسـاعدة الخاص بالآلة ووجدت الآتي :
إقتباس :الوضع 'مبرمج' وضع يستخدم الأعداد الصحيحة فقط. يتم رفض الأجزاء العشرية.

إقتباس : ربما الامر له علاقة بالـ cp1 او cp2 و الله اعلم
اهلا اخي المبرمج S.FATEH ... هلا وضحت لي ما هي الـ cp1 و cp2 ... فانا لا اعرفها , وعذراً على ازعاجك
عفوا على التأخر

كود :
http://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_un

كود :
http://fr.wikipedia.org/wiki/Compl%C3%A9ment_%C3%A0_deux

هذه هي الطريق ليعرف الحاسب ان كان العدد سالب او موجب عفوا معلوماتي شحيحة من هذا الجانب