سؤال

كيف يمكنني محاكاة 32 بت الأعداد الصحيحة غير المصنفة دون أي تبعيات خارجية في جافا سكريبت?الحيل مع x >>> 0 أو x | 0 لا تعمل (من أجل الضرب ، يبدو أنها تعمل من أجل الجمع / الطرح) ، ويفقد الزوجي الدقة أثناء الضرب.

على سبيل المثال ، حاول ضرب 2654435769 * 340573321 (وزارة الدفاع 2^32).يجب أن تكون النتيجة 1.

هذه الإجابة لديه الضرب.ماذا عن الجمع / الطرح / تقسيم?

هنا رابط إلى ولفرام ألفا ، تقديم المعادلة أعلاه.

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

المحلول

32 بت غير موقعة إنت يناسب داخل جافا سكريبت 64 بت تعويم -- يجب ألا يكون هناك فقدان للدقة عند إجراء الجمع أو الطرح أو القسمة.فقط قناع مع 0xffffffff للبقاء ضمن عدد صحيح 32 بت.الضرب يتجاوز ما يناسب ، ولكن لديك بالفعل حل لذلك.

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