一个整数转换成2进制

#include "all.h"


#define INT_BITS (sizeof(int)*8)
#define M (1<<(INT_BITS-1))

void int2bit(int n);
void int2bit2(int n);

int
main(void)
{
    int n;
   
    printf("%d/n", INT_BITS);
    scanf("%d", &n);
       
    int2bit(n);
    printf("/n");
    int2bit2(n);
    printf("/n");

    return 0;
}

//向左移
void int2bit(int n)
{
    int i;

    for (i = 0; i < INT_BITS; i++) {
        //putchar(((n<<i)&M)==0?'0':'1');
        putchar((n&M)==0?'0':'1');
        n <<= 1;
    }
}

//向右移
void int2bit2(int n)
{
    int i;
   
    for (i = INT_BITS - 1; i >= 0; i--) {
        putchar(((n>>i)&1)==0?'0':'1');
    }
}

你可能感兴趣的:(include)