Math.imul()
< JavaScript | Math
اذهب إلى التنقل
اذهب إلى البحث
مراجعة 15:40، 28 يناير 2018 بواسطة عبد اللطيف ايمش (نقاش | مساهمات) (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
الدالة Math.imul()
تعيد ناتج ضرب المعاملين كعددين بطول 32 بت كما في لغة C.
البنية العامة
Math.imul(a, b)
a
العدد الأول.
b
العدد الثاني.
القيمة المعادة
ناتج ضرب المعاملين كعددين بطول 32 بت كما في لغة C.
الوصف
هذه الدالة تسمح بضرب الأعداد الصحيحة بطول 32 بت كما في C، وهي ميزةٌ مفيدة لبعض المشاريع مثل Emscripten.
لمّا كانت الدالة imul
هي دالةٌ ساكنة (static method) تابعةٌ للكائن Math، فيجب عليك استخدامها دومًا بالشكل Math.imul()
، إذ لا تستطيع استخدامها كجزء من كائن Math
خاص بك (تذكر أنَّ الكائن Math
ليس له دالةٌ بانية).
أمثلة
أمثلة عن استخدام الدالة Math.imul()
:
Math.imul(2, 4); // 8
Math.imul(-1, 8); // -8
Math.imul(-2, -2); // 4
Math.imul(0xffffffff, 5); // -5
Math.imul(0xfffffffe, 5); // -10
تعويض نقص دعم المتصفحات
يمكن محاكاة هذه الدالة كما يلي:
Math.imul = Math.imul || function(a, b) {
var ah = (a >>> 16) & 0xffff;
var al = a & 0xffff;
var bh = (b >>> 16) & 0xffff;
var bl = b & 0xffff;
// the shift by 0 fixes the sign on the high part
// the final |0 converts the unsigned value into a signed value
return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0)|0);
};
دعم المتصفحات
الميزة | Chrome | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
الدعم الأساسي | 28 | 20 | غير مدعومة | 16 | 7 |
على النقيض من المتصفح IE، يدعم متصفح Edge هذه الميزة.
مصادر ومواصفات
- مسودة المعيار ECMAScript Latest Draft.
- معيار ECMAScript 2015 (6th Edition).