int32에서 IPv4로

아래 스크린샷에서 볼 수 있듯이 문제 설명과 예상되는 입력 및 출력이 있습니다.


입력은 정수입니다.

2149583361



출력은 IPv4 형식이어야 합니다.

"128.32.10.1"



여기서 사용되는 프로그래밍 언어는 Javascript이지만 원하는 언어를 사용할 수 있습니다.

접근하다 -
  • 십진 정수를 이진 표현으로 변환합니다
  • .
  • 이진 형식을 32비트 형식으로 변환
  • 32비트를 각각 8비트로 나누어 배열에 저장
  • 8개의 이진 비트를 모두 10진수 형식으로 변환합니다
  • .
  • 문자열로 저장합니다
  • .

    단계는 -
  • 변수를 가져와 입력을 저장합니다
  • .
    let int32="2149583361";
  • 다른 변수를 가져오고 Javascript의 내장 toString() 메서드를 사용하여 입력을 십진수에서 이진수로 변환하고 매개 변수 2를 제공하여 십진수 정수를 이진 문자열로 변환합니다
  • .
    let s=int32.toString(2);
  • 빈 변수를 가져와 길이 => 32-(문자열 길이)의 변수에 0을 저장합니다.

  • let zero_s="";
      let temp=32-s.length;
      for(let i=0;i<temp;i++) 
        zero_s+="0";
    


  • 다른 변수를 사용하여 원래 입력 문자열에 0비트 문자열을 추가하여 최종 32비트 문자열을 저장합니다
  • .
    let res_s=zero_s+s;
  • for 루프를 사용하여 32비트 문자열을 순회하고 각 부분을 8비트로 분할하고 배열에 저장합니다.

  • let array=[];
      let z=0;
      for(let j=0;j<4;j++) {
        let r=res_s.substring(z, 8+z);
        array.push(r);
        z+=8;
      }
    


  • Javascript의 내장된 parseInt() 메서드를 사용하여 변환된 10진수 문자열 요소를 저장하기 위해 다른 배열을 가져옵니다.

  • let array2=[];
      for(let k of array) {
        let qq=parseInt(k, 2);
        array2.push(qq);
      }
    


  • join() 함수의 도움으로 배열을 분리하기 위해 도트(.)를 사용하여 배열을 문자열로 변환하여 출력을 인쇄합니다
  • .
    return array2.join(".");
    이 문제는 10진수를 2진수로 또는 그 반대로 변환하는 개념을 사용합니다.

    또한 메모리를 배열에서 문자열로 또는 그 반대로 조그합니다.

    좋은 웹페이지 즐겨찾기