您的位置:首页 > 编程语言 > C语言/C++

C语言 将int型数据以二进制形式输出

2012-12-28 16:43 591 查看
#include <stdio.h>

#include <stdlib.h>

int main(void)

{

    printf("N=");

    int n,i;

    scanf("%d",&n);

    int len=sizeof(int)*8;   //int型所占数据宽度

    

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

    {    
        putchar('0'+((unsigned)(n<<i)>>(len-1)));    //先左移,再逻辑右移,就把二进制从高位到低位输出了

// printf("%d",((unsigned)(n<<i)>>(len-1)));  //也可以这样输出

    }

    printf("\n%d\n",n);

    //Another method

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

    {

        putchar('0'+((unsigned)(n&(1<<(len-1)))>>len-1));  //将1左移,然后和n做按位与运算,最后逻辑右移,从高位到低位输出二进制

        n<<=1;  //上边的一句总是对最高位进行处理,所以,这里就对n左移一位喽

    }

    printf("\n%d\n",n);

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