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 |