غير موقعة 32 بت الأعداد الصحيحة في جافا سكريبت
-
13-12-2019 - |
سؤال
كيف يمكنني محاكاة 32 بت الأعداد الصحيحة غير المصنفة دون أي تبعيات خارجية في جافا سكريبت?الحيل مع x >>> 0
أو x | 0
لا تعمل (من أجل الضرب ، يبدو أنها تعمل من أجل الجمع / الطرح) ، ويفقد الزوجي الدقة أثناء الضرب.
على سبيل المثال ، حاول ضرب 2654435769 * 340573321 (وزارة الدفاع 2^32).يجب أن تكون النتيجة 1.
هذه الإجابة لديه الضرب.ماذا عن الجمع / الطرح / تقسيم?
هنا رابط إلى ولفرام ألفا ، تقديم المعادلة أعلاه.
المحلول
32 بت غير موقعة إنت يناسب داخل جافا سكريبت 64 بت تعويم -- يجب ألا يكون هناك فقدان للدقة عند إجراء الجمع أو الطرح أو القسمة.فقط قناع مع 0xffffffff
للبقاء ضمن عدد صحيح 32 بت.الضرب يتجاوز ما يناسب ، ولكن لديك بالفعل حل لذلك.
لا تنتمي إلى StackOverflow