سؤال

هل هناك فرق في مزدوج حجم عندما أقوم بتشغيل تطبيقي على بيئة 32 و 64 بت؟

إذا لم أكن مخطئا في بيئة مزدوجة في 32 بت سيأخذ 16 رقما بعد 0، في حين أن المزدوج في 64 بت سيستغرق 32 بت، هل أنا على حق؟

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

المحلول

لا، IEEE 754 رقم نقطة عائمة مزدوجة الدقة هو دائما 64 بت. وبالمثل، ودقة واحدة float هو دائما 32 بت.

إذا كان سؤالك يتعلق ب C # و / أو .NET خصيصا (كما تشير علامةتك)، الكل من أحجام نوع البيانات ثابتة، مستقلة عن بنية النظام الخاصة بك. هذا هو نفسه Java، ولكن مختلفة عن C و C ++ حيث تختلف أحجام النوع من النظام الأساسي إلى النظام الأساسي.

من الشائع أن تكون الأنواع المتكاملة أحجام مختلفة على بنية مختلفة في C و C ++. على سبيل المثال، int كان 16 بت واسعة في DOS 16 بت و 32 بت واسعة في Win32. ومع ذلك، فإن معيار IEEE 754 هو في كل مكان للغاية للحساب العائمة أن أحجام float و double فعل ليس تختلف على أي نظام سوف تجد في العالم الحقيقي - قبل 20 عاما double كان 64 بت وحتى اليوم.

نصائح أخرى

في C # مزدوجة هو دائما 8 بايت (64 بت)

لا يتغير.

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

Console.WriteLine(Double.MaxValue);

وتجميع إلى كل من x86 و x64.

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