반응형
7. 2진수를 main()함수의 매개변수를 받아들여, 10진수, 16진수, 8진수로 바꾸어 출력하는 프로그램을 작성하라.
#include <stdio.h> #include <math.h> // pow() 사용 #include <stdlib.h> // atoi() 사용 //atoi() : 문자열을 int 데이터로 변환하는 함수. int main(int argc, char *argv[]) { int decimal = 0; int k = 0; if (argc != 2) { printf("2진수 매개변수 하나를 입력하세요 \n"); } for (int i = 0; argv[1][i] != '\0'; i++) { if (argv[1][i] < '0' || argv[1][i] > '1') { printf("2진수 매개변수 하나를 입력하세요 \n"); } k++; } for (int i = 0; i < k; i++) { decimal += (argv[1][i] == '1' ? 1 : 0) * (int)pow(2, k - i - 1); } printf(" 2진수 %s는\n",argv[1]); printf("10진수 = %d \n", decimal); printf("16진수 = %x \n", decimal); printf(" 8진수 = %o \n", decimal); printf("입니다. \n"); }
//잘못된 부분 수정...
반응형