JavaScript에서 숫자를 이진 형식으로 변환

Nithin Krishnan 2023년10월12일
  1. JavaScript에서 숫자를 이진수로 변환하는 함수 만들기
  2. toString(2)함수를 사용하여 숫자를 이진수로 변환
JavaScript에서 숫자를 이진 형식으로 변환

숫자를 이진수로 변환하는 것은 매우 복잡한 과정입니다. 앉아서 숫자를 수동으로 변환하면 결과는 오류가 발생하기 쉽습니다. 숫자를 이진 형식으로 어떻게 변경합니까? JavaScript에는 그렇게하기위한 내장 함수가 많지 않습니다. JavaScript에서 숫자를 바이너리로 변환하는 방법을 소개합니다.

JavaScript에서 숫자를 이진수로 변환하는 함수 만들기

코드로 이동하기 전에 십진수 (밑수 10)에서 이진수 (밑수 2) 로의 변환 과정을 알아야합니다. 간단하게하기 위해이 기사에서는 양의 정수 변환에 대해 다룰 것입니다. 따라서 음의 정수와 부동 소수점 숫자의 변경은이 기사의 범위를 벗어납니다.

변환 프로세스 이해

정수 (또는 JavaScript 숫자)가 주어지면 숫자를 2로 나누고 나머지를 2보다 작게 나눕니다. 2보다 작은 몫

제수 나머지 비트
25/2 12 1 0
12/2 6 0 1
6/2 0 2
3/2 1 1
1/2 0 1 4

우리는 가장 높은 것에서 가장 낮은 것까지 숫자를 읽습니다. 따라서 숫자 25의 이진 값은 1101입니다.

이진 값이 올바른 십진수를 나타내는 지 확인하기 위해 다음 계산 세트를 사용합니다. 이진수로 표시된 각 비트에2를 곱하여 비트 위치 값 (0부터 시작)에 전력을 공급합니다.

= 2^4*(1) + 2^3*(1) + 2^2*(0) + 2^1*(0) + 2^0*(1)
= 16 + 8 + 0 + 0 + 1
= 25

숫자를 이진 형식으로 변환하는 JavaScript 코드

위에서 설명한 메서드에 다음 코드를 빌드합니다. convertToBinary1함수는 매개 변수로 전달 된 10 진수에 해당하는 2 진을 콘솔합니다. 결과를 거꾸로 읽었습니다. 따라서 코드는 앞서 언급 한 모든 요소를 ​​염두에두고 작성되었습니다.

반복 사용

function convertToBinary1(number) {
  let num = number;
  let binary = (num % 2).toString();
  for (; num > 1;) {
    num = parseInt(num / 2);
    binary = (num % 2) + (binary);
  }
  console.log(binary);
}

window.onload = function() {
  console.log(convertToBinary1(25));
  console.log(convertToBinary1(8));
}

출력:

11001
1000

단계

  • 함수에 전달 된 매개 변수의 복사본을 만들어 임시 변수num에 저장합니다.
  • 바이너리 비트를 저장할 변수를 만듭니다. 본질적으로 처리를 더 쉽게하기 위해 문자열 유형입니다.
  • 이진 비트 생성을위한 반복을 시작하고 숫자가 2로 더 이상 나눌 수 없을 때까지 계속합니다.

    각 반복에서 숫자를2로 나누어 몫을 얻습니다. 몫의모듈러스를 계산합니다. 이 단계에서는 이진 비트가 2 인 숫자의모듈러스로 생성되어 이진 비트0또는1이 생성됩니다.

  • modulous값에 의해 생성 된 이진 비트를 각 반복에서 생성 된 이진 비트를 보유하는 이진 변수에 추가합니다.
  • 숫자가2(조건 (num / 2)> 1로 확인 됨)로 더 이상 나눌 수 없으면 반복이 중지됩니다.
  • 마지막 단계에서 결과를 콘솔에 기록합니다. 따라서이 함수에 매개 변수로 전달 된 10 진수에 해당하는 이진 값을 얻습니다.

재귀 사용

재귀 방법을 사용하여 십진수 비트를 이진수로 변환 할 수 있습니다. 이 접근 방식에는 더 적은 코드 줄이 필요하지만 더 많은 생각이 필요합니다. 재귀는 숫자가 더 이상 2로 나눌 수 없을 때 중지되고 브레이크 아웃 조건에 도달 할 때까지 계속 호출합니다. 재귀는 우아하지만 단순 반복 접근 방식보다 함수 호출 스택에 더 많은 메모리를 사용합니다.

function convertToBinary(number, bin) {
  if (number > 0) {
    return convertToBinary(parseInt(number / 2)) + (number % 2)
  };
  return '';
}

window.onload = function() {
  console.log(convertToBinary(25));
  console.log(convertToBinary(8));
}

출력:

11001
1000

toString(2)함수를 사용하여 숫자를 이진수로 변환

toString()함수는 숫자를 문자열로 변환하는 데 매우 익숙합니다. 그러나 숫자를 이진 형식으로 변환하는데도 사용할 수 있습니다. 일반적으로Number개체와 함께 사용되어 숫자를 이진 형식으로 변환합니다. javascript의toString(2)함수는 숫자 객체에 사용될 때 아래 예에 설명 된대로 숫자 값에 해당하는 이진 값을 반환합니다. 이 메서드는 기수 값을 입력으로 사용합니다. 따라서 주어진 숫자를 다른 기본 시스템 (예 : 16 (16 진수) 및 8 (8 진수))으로 변환하는 데 사용할 수 있습니다.

(8).toString(2)(25).toString(2)(235).toString(2)

출력:

"1000"
"11001"
"11101011"

toString(2)메소드의 반환 유형은 문자열로 유지됩니다. 따라서 숫자를 문자열 형식의 이진 비트로 변환합니다.

관련 문장 - JavaScript Number