c语言中,如何用位运算,输入一个十进制数而输出一个二进制数?

如题所述

#include <stdio.h>

int num[100];

int main()
{
    int n,t=0,i;
    scanf("%d",&n);
    while(n)
    {
        num[t++] = (n & 1);
        n >>= 1;
    }
    for(i=t-1;i>=0;i--)
    printf("%d",num[i]);
    puts("");
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-11-18
#include <stdio.h>

const char *dec2bin(int value)
{
    static char res[65];
    
    char *ptr = res + 64;
    *ptr = 0;
    while (value) {
        *(--ptr) = (value & 0x01) + '0';
        value >>= 1;
    }

    printf("%s\n", ptr);
    
    return ptr;
}

int main()
{
    dec2bin(10);
    dec2bin(16);
    dec2bin(9);
    return 0;
}

第2个回答  推荐于2017-09-22
#include <stdlib.h>
#include <stdio.h>

void main(void)
{
int number;
char string[25];

printf("请输入一个十进制数:");
scanf("%d",&number);

itoa(number, string, 2);

printf("二进制为%s\n", string);

}追问

这是位运算吗?

追答

不是,但是很方便

追问

位运算怎么做啊?大神

本回答被提问者采纳
相似回答