您的位置:首页 > 其它

用移位运算实现一个整数二进制形式的输出--简短程序分析

2013-05-19 23:20 531 查看
#include <stdio.h>

int

main ()

{

const int bits = sizeof(int)*8; //一个字节8位,算出是多少位的运算,如32,64

unsigned int mask = 1<<bits-1; //如果是32位运算,则是0x80000000;注意是bits-1

int n;

printf ("Please input an integer: ");

scanf ("%d", &n);

int i;

for ( i=0; i<bits; i++ )

{

//实现每次进行一次移位,这样输出n的每一位

printf ("%c", n&mask?'1':'0'); //运算后,如果不是0,就是1;注意是%c

mask = mask>>1;

}

printf ("\n");

return 0;

}

一下是实现上述功能的另外的微小改动的实现方式:

1.

#include<stdio.h>

int

main ()

{

const int bits = sizeof(int)*8;

unsigned int mask = 1<<bits-1;

int n;

printf ("Please input an integer: ");

scanf ("%d", &n);

int i;

for ( i=0; i<bits; i++ )

{

printf ("%c", n&mask?'1':'0');

n << 1;

}

printf ("\n");

return 0;

}

2.

#include<stdio.h>

int

main ()

{

const int bits = sizeof(int)*8;

unsigned int mask = 1<<bits-1;

int n;

printf ("Please input an integer: ");

scanf ("%d", &n);

int i;

for ( i=0; i<bits; i++ )

{

printf ("%c", n<0?'1':'0');

n << 1;

}

printf ("\n");

return 0;

}

3.

#include<stdio.h>

int

main ()

{

const int bits = sizeof(int)*8;

unsigned int mask = 1<<bits-1;

int n;

printf ("Please input an integer: ");

scanf ("%d", &n);

int i;

for ( i=0; i<bits; i++ )

{

printf ("%d", n<0);

n << 1;

}

printf ("\n");

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐