"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > هل يؤدي تحويل القيمة المنطقية إلى عدد صحيح دائمًا إلى 0 أو 1؟

هل يؤدي تحويل القيمة المنطقية إلى عدد صحيح دائمًا إلى 0 أو 1؟

تم النشر بتاريخ 2024-11-18
تصفح:559

Does Converting a Boolean to an Integer Always Result in 0 or 1?

هل يمكن أن تصبح القيمة المنطقية دائمًا صفرًا أو واحدًا عند تحويلها إلى عدد صحيح؟

عند تحويل قيمة منطقية إلى عدد صحيح، يبدو أن العديد من المترجمين تحتفظ فقط بـ 0 أو 1، مما يثير تساؤلات حول موثوقية هذا السلوك. لنتفحص مثالاً:

int a = 2;
bool b = a;
int c = 3   b; // What is the result? 4 or 5?

الإجابة: نعم، يتم ضمان أن يكون bool 0 أو 1 عند تحويله إلى عدد صحيح.

في C :

ينص معيار C (§4.5/4) بشكل صريح على ما يلي: "يمكن تحويل قيمة r من النوع bool إلى قيمة r من النوع int، حيث تصبح القيمة false صفرًا وصحيح أن تصبح واحدًا."

في C:

عندما يتم تحويل القيمة إلى _Bool، تصبح 0 أو 1 (§6.3.1.2/1): " عند تحويل أي قيمة عددية إلى _Bool، تكون النتيجة 0 إذا كانت القيمة تساوي 0، وإلا فإن النتيجة هي 1 هو واضح ومباشر لأن int يمكن أن يحمل 0 و 1، لذلك لا يوجد تغيير في القيمة (§6.3.1.3).

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3