codememo

printf를 통해 이진수를 인쇄하는 방법

tipmemo 2023. 6. 22. 21:53
반응형

printf를 통해 이진수를 인쇄하는 방법

중복 가능성:
바이너리 형식으로 인쇄할 printf 컨버터가 있습니까?

여기 제 프로그램이 있습니다.

#include<stdio.h>
int main ()
{
    int i,a=2;
    i=~a;
    printf("a=%d\ni=%d\n",a,i);

    return 0;
}

출력은

a=2
i=-3

나는 이것을 이진법으로 인쇄하기를 원합니다.16진수, 8진수, 10진수에 해당하는 %x, %o 및 %d가 있습니다. 하지만 printf에서 이진수를 인쇄하는 것은 무엇입니까?

printf()는 그것을 직접적으로 지원하지 않습니다.대신 당신은 당신 자신의 기능을 만들어야 합니다.

다음과 같은 것:

while (n) {
    if (n & 1)
        printf("1");
    else
        printf("0");

    n >>= 1;
}
printf("\n");

ANSIC에는 이 메커니즘이 없지만 사용할 수 있습니다.itoa()바로 가기:

char buffer[33];
itoa(i, buffer, 2);
printf("binary: %s\n", buffer);

출처: in cplus plus 참조

비표준 C이지만, K&R이 C북에서 구현을 언급했기 때문에 상당히 일반적일 것입니다.안에 있어야 합니다.stdlib.h.

언급URL : https://stackoverflow.com/questions/6373093/how-to-print-binary-number-via-printf

반응형