
	                	                 
is_double 함수는 자바스크립트에서 숫자가 64비트 부동소수점 형식으로 표현되는지 확인하는 함수입니다.
이 함수는 숫자가 IEEE 754 64비트 부동소수점 형식으로 표현되는지 확인합니다. IEEE 754 64비트 부동소수점 형식은 일반적으로 64비트 부동소수점 형식으로 알려져 있습니다.
이 함수는 숫자의 부호, 가수, 지수, 그리고 오버플로우 여부를 확인하여 숫자가 64비트 부동소수점 형식으로 표현되는지 판단합니다.
예를 들어, 다음 코드는 64비트 부동소수점 형식으로 표현되는 숫자인지 확인합니다.
#hostingforum.kr
javascript
function isDouble(num) {
  // 64비트 부동소수점 형식의 부호 비트는 0x00000000 00000000 00000000 00000000
  // 부호 비트가 0이면 양수, 1이면 음수
  const signBit = (num >> 63) & 0x1;
  // 가수 비트는 0x00000000 00000000 00000000 00000000 ~ 0x7FFFFFFFFFFFFFFF
  // 지수 비트는 0x00000000 00000000 00000000 8000 ~ 0x7FFFFFFFFFFFFFFF
  const exponentBit = (num >> 52) & 0x7FF;
  // 오버플로우 여부를 확인
  if (exponentBit === 0x7FF) {
    // 오버플로우
    return false;
  }
  // 부호 비트가 1이면 음수, 0이면 양수
  const isNegative = signBit === 1;
  // 지수 비트가 0이면 0, 1이면 1
  const isZero = exponentBit === 0;
  // 부호 비트가 1이면 지수 비트가 0이면 0, 1이면 -0
  const isNegativeZero = isNegative && isZero;
  // 지수 비트가 0이면 0, 1이면 1
  const isInfinity = exponentBit === 0x7FF && !isNegativeZero;
  // 오버플로우 여부를 확인
  const isOverflow = exponentBit === 0x7FF;
  // 숫자가 64비트 부동소수점 형식으로 표현되는지 확인
  return !isInfinity && !isOverflow && !isNegativeZero;
}
console.log(isDouble(1.0)); // true
console.log(isDouble(-1.0)); // true
console.log(isDouble(0.0)); // true
console.log(isDouble(-0.0)); // true
console.log(isDouble(Infinity)); // false
console.log(isDouble(-Infinity)); // false
console.log(isDouble(NaN)); // false
이 함수는 숫자가 64비트 부동소수점 형식으로 표현되는지 확인하는 데 사용됩니다.
2025-07-14 03:16