본문 바로가기

개발하자/JAVA문제풀이

2진수 IP주소를 10진수로 바꾸기

32 bit ( 이진수 32 자리 ) ip 주소를 입력으로 받아 8 자리씩 끊어 10 진수로 바꾸어 출력하는 문제이다.

참고로 이진수를 10 진수로 바꾸기위한 ,첫 8 자리의 2 진수 가중치는 다음과 같다.

27 26 25 24 23 22 21 20
128 64 32 16 8 4 2 1

 

 

 

입력

공백없이 2 진수 32 자리숫자가 입력으로 주어진다.

출력

8 자리씩 끊어 10 진수.10진수.10진수.10진수 형태로 출력한다.

입출력 예

입력
00000000000000000000000000000000 
출력
0.0.0.0
입력
00000011100000001111111111111111 
출력
3.128.255.255
입력
11001011100001001110010110000000 
출력
203.132.229.128
입력
01010000000100000000000000000001 
출력
80.16.0.1
sol)
import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  String ip=sc.next();
  long[] num=new long[4];
  String[] ipNum=new String[4];
  ipNum[0]=ip.substring(0,8);
  ipNum[1]=ip.substring(8,16);
  ipNum[2]=ip.substring(16,24);
  ipNum[3]=ip.substring(24,32);
  for(int w=0;w<4;w++){
   for(int i=7,x=1;i>=0;i--,x*=2){
    num[w]+=Integer.parseInt(""+ipNum[w].charAt(i))*x;
   }
  }
  System.out.println(num[0]+"."+num[1]+"."+num[2]+"."+num[3]);
 }
}

'개발하자 > JAVA문제풀이' 카테고리의 다른 글

2015.01.08 awt 사칙연산 과제  (0) 2015.01.08
묻지마정렬(학생의 반과 번호)  (0) 2015.01.06
그릇높이계산  (0) 2015.01.06
frequency (수의 빈도수 계산)  (0) 2015.01.06
윷놀이  (0) 2015.01.06