ascode 1253 IP Address #2
문제 설명
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");
}
}
댓글남기기