"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > لماذا يقوم مشغل Modulo الخاص بـ Java بإرجاع نتيجة سلبية للأرقام السالبة؟

لماذا يقوم مشغل Modulo الخاص بـ Java بإرجاع نتيجة سلبية للأرقام السالبة؟

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

Why Does Java\'s Modulo Operator Return a Negative Result for Negative Numbers?

نتائج Modulo السلبية في Java

عند إجراء عمليات modulo بأرقام سالبة في Java، ربما لاحظت أن النتائج تختلف عن تلك التي تم الحصول عليها في بايثون. في Java، int i = -1 % 2 ينتج -1، بينما في Python، يُرجع 1.

فهم Modulo و Remainder

المفتاح لفهم هذا الاختلاف يكمن في التمييز بين modulo والباقي. في بايثون، يُرجع عامل التشغيل % المعامل، والذي ينتج دائمًا نتيجة غير سلبية. في المقابل، يقوم عامل modulo في Java بإرجاع الباقي، والذي يمكن أن يكون سالبًا إذا كان البسط سالبًا.

تصحيح النتائج السلبية

للحصول على نفس سلوك عامل التشغيل % في بايثون في Java، يمكنك تنفيذ الخطوات التالية:

    احسب الباقي باستخدام modulo: int i = -1 % 2;
  1. أضف ما يكفي لجعل الباقي غير سالب: if (i
بدلاً من ذلك، يمكنك استخدام الصيغة التالية:

int i = (((-1 % 2) 2) % 2);

من خلال تطبيق هذه الطرق، يمكنك التأكد من أن عامل modulo في Java يُرجع نتائج إيجابية للمدخلات السلبية، مطابقة السلوك في بايثون.

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

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

Copyright© 2022 湘ICP备2022001581号-3