ascode 1253 IP Address #2

1 분 소요

문제 설명

10진법을 사용하는IP 주소를32비트의2진수로 변환하는 프로그램을 작성해 보자. 4개의 십진수로 이루어진 IP 주소의 각 십진수 값은0에서255사이이며, 각 값들은3개의.(period)로 구별된다. 출력되는2진수는 각 십진수 값을8비트2진수로 변환한 후 연달아 출력하도록 하되, 전체 길이가32자리가 되기 위하여8비트2진수로 변환된 값이8자리가 되지 않는 경우에는8자리가 되도록 앞부분을0으로 채워 출력하도록 한다.(즉 변환값이1001 경우: 00001001 로 출력)

입력 설명

첫 줄에는 테스트 케이스 수 T가 입력된다.(1 <= T <= 10) 다음 줄부터 T개의 십진수 형식의IP주소가 입력된다.

출력 설명

첫 줄에는 테스트 케이스 수 T가 입력된다.(1 <= T <= 10) 다음 줄부터 T개의 십진수 형식의IP주소가 입력된다.

입력 예시

3
3.128.255.255
203.132.229.128
80.16.0.1

출력 예시

00000011100000001111111111111111
11001011100001001110010110000000
01010000000100000000000000000001

#코드

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>  
 
 
int main() {
    int testcase = 0;
    scanf("%d", &testcase);
    for (int i = 0; i < testcase; i++)
    {
        int ip1 = 0, ip2 = 0, ip3 = 0, ip4 = 0;
        scanf("%d.%d.%d.%d", &ip1, &ip2, &ip3, &ip4);
        for (int i = 7; i >= 0; --i) { //8자리 숫자까지 나타냄
            int result = ip1 >> i & 1;
            printf("%d", result);
        }
        for (int i = 7; i >= 0; --i) { //8자리 숫자까지 나타냄
            int result = ip2 >> i & 1;
            printf("%d", result);
        }
        for (int i = 7; i >= 0; --i) { //8자리 숫자까지 나타냄
            int result = ip3 >> i & 1;
            printf("%d", result);
        }
        for (int i = 7; i >= 0; --i) { //8자리 숫자까지 나타냄
            int result = ip4 >> i & 1;
            printf("%d", result);
        }
        printf("\n");
    }
}
 

댓글남기기