CodeWars 코딩 문제 2021/02/09 - int32 to IPv4

이호현·2021년 2월 9일
0

Algorithm

목록 보기
77/138

[문제]

Take the following IPv4 address: 128.32.10.1

This address has 4 octets where each octet is a single byte (or 8 bits).

  • 1st octet 128 has the binary representation: 10000000
  • 2nd octet 32 has the binary representation: 00100000
  • 3rd octet 10 has the binary representation: 00001010
  • 4th octet 1 has the binary representation: 00000001

So 128.32.10.1 == 10000000.00100000.00001010.00000001

Because the above IP address has 32 bits, we can represent it as the unsigned 32 bit number: 2149583361

Complete the function that takes an unsigned 32 bit number and returns a string representation of its IPv4 address.

Examples

2149583361 ==> "128.32.10.1"
32 ==> "0.0.0.32"
0 ==> "0.0.0.0"

(요약) 주어진 숫자를 IPv4로 변환하라.

[풀이]

function int32ToIp(int32){
  const ipv4 = [];

  while(ipv4.length < 4) {
    ipv4.unshift(int32 % 256);
    int32 = (int32 / 256)|0;
  }

  return ipv4.join('.');
}

ip주소는 0 ~ 255 사이의 숫자 4개가 .을 사이에 두고 표현된다.
예를 들면 0.0.0.0, 192.168.0.1같은 형식이다.
그래서 결국 256진법을 4자리로 표현하는 방법으로 구하면 된다.

profile
평생 개발자로 살고싶습니다

0개의 댓글