숫자와 문자를 입력해 문자를 출력하는 프로그램

조회수 2279회

밑에 코드에서

putchar('0' + 1) 을 출력 "1",

putchar ('0' + 2) 을 출력r "2",

putchar('a' + 1) 을 출력 "b",

putchar('a' + 2) 을 출력 "c"

으로 바꾸고 싶은데 어디를 어떻게 손대야 할지 모르겠습니다.

₩₩₩

void print_binary(double num) ;

int main(void) { printf("\n")``;

print_binary(65535);

print_binary(1<<31 | 1<<30 | 1<<5 | 1<<0);

print_binary(-7);

print_binary(-7.0);
print_binary(42);
printf("\n");
return 0;

}

void print_binary(double num) {

int curr_bit_num = (sizeof(int) * 8 - 1);

while (curr_bit_num >= 0) {
    int mask = 1 << curr_bit_num;
    int bit = ((mask & num) >> curr_bit_num) & 1;
    putchar('0' + bit);
    if (curr_bit_num > 0 && curr_bit_num % 4 == 0) {
        putchar('_');
    }
    curr_bit_num--;
}

printf("    is binary for %d\n", num);

}

₩₩₩

  • (•́ ✖ •̀)
    알 수 없는 사용자
  • 먼저 `num`이 `double`형이라서 `mask & num`과 같이 비트연산을 하지 못합니다. buttercrab 2018.1.15 12:10
  • 그럼 어떤 형으로 바꿔여 할까요? 알 수 없는 사용자 2018.1.15 14:50
  • 비트연산은 정수형만 가능합니다. buttercrab 2018.1.25 12:17

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)