Math.imul() 함수는 C 언어와 같은 양식으로 2개 파라메터의 32-bit 곱셉 결과를 리턴합니다.

문법

Math.imul(a, b)

파라메터

a
첫 번째 숫자.
b
두 번째 숫자.

설명

Math.imul() 를 쓰면 C 언어와 같은 양식의 빠른 32-bit 정수 곱셈이 가능합니다. 이 기능은 Emscripten 같은 프로젝트에 유용합니다. imul()Math 객체의 정적 메소드이기 때문에, Math 객체를 직접 만들어서 사용하지 않고 (Math 는 생성자가 아닙니다), Math.imul() 같은 형태로 사용합니다.

예제

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

Polyfill

다음과 같은 함수로 Math.imul() 을 흉내낼 수 있습니다.

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);
};

스펙

스펙 상태 비고
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.imul' in that specification.
Standard 초기 정의.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.imul' in that specification.
Draft  

브라우저 호환성

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 28 20 (20) ? 16 7
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support ? ? 20.0 (20) ? ? 7

문서 태그 및 공헌자

 이 페이지의 공헌자: ingee.kim
 최종 변경: ingee.kim,