سؤال

أنا أعمل في C ++ ولدي #define VAL 0x00000400. عندما أقوم بتعيين متغير يساوي تحديد: int value = val ؛ عندما أركض عبر مصحح الأخطاء ، يظهر القيمة المتغيرة = 1024. هل يمكن لأي شخص أن يشرح كيف يتحول ذلك إلى 1024؟ ربما بعض الروابط لمعلومات عنوان الذاكرة ، أو معلومات #Define ، أو أي شيء ذي صلة.

هل كانت مفيدة؟

المحلول

0x00000400 هو الأساس 16 لـ 1024. يعرضك تصحيح الأخطاء على قيمة عدد صحيح في القاعدة 10.

نصائح أخرى

"0x400" هو السداسي عشري, ، أو قاعدة 16. 0x400 معبر عنها على أنها عشرية (قاعدة 10) ، هي 1024.

بالمناسبة ، يمكنك استخدام Google لإجراء تحويلات أساسية. البحث عن "0x400 في عشري" وستقدم لك Google الإجابة.

0x00000400 هو 400 قاعدة 16 ، وهو 1024 قاعدة 10.

1024 في عشري = 400 في السداسي.

0x400 هو رقم سداسي عشري (يشار إليه من قبل 0x بادئة.) إنها طريقة أخرى لتمثيل العدد العشري 1024.

بالإضافة إلى ذلك ، فإن التحويل من 0x400 (قاعدة 16) إلى قاعدة 10 هو:

4*16^2 + 0*16^1 + 0*16^0
4*16^2 + 0 + 0
4*256
1024

حسنًا ، لم أر الرمز الخاص بك ، ولكن 400H = 1024 العشرية وتحدد عدد صحيح "int value = val" فقط لا يعرض أي إشعار/تحذير ، فهو يقوم بممثلين من أجلك

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top