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

用代码实现C函数功能——十进制转换为二进制

2011-03-14 19:55 483 查看
十进制转换为二进制,在数学上有很多种解法,可以每次除2后取余数,可以减去2的n次幂,n递减。不过在C语言中,有简单巧妙的算法。

我们知道任何数在计算机中都是以二进制代码存储的,在C语言课本中位操作一般讲的比较简单,而这个例子中,我看到了位操作的巧妙之处。在二进制中每次左移一位,相当于*2,而且有按位与&这个功能,所以我们可以想,用一位二进制左移,然后跟10的二进制按位与,这一就能表达出10进制的二进制形式了。

由于网上到处复制别人成果的现象泛滥,而且不加分析,本人对此种现象深恶痛觉。但是鉴于本人技术有限,自学C++第二天,所以此段代码仍是参考别人,但是经过自己添加修改,自己也分析掌握了其中的技巧,相信下一次我能完全自己学出代码来,加油!

/*十进制转换为二进制*/

#include "Stdio.h"

#include "Conio.h"

#define N 16 /*16表示int是16位的位容器*/

void change(int X)

{

int i;

printf("The result of change is:" );

for(i=1;i<=N;i++)

{

if((1<<N-i)&X) /*1左移N-i,只要二进制中有一位按位与之后为1就输出1*/

printf("1");

else

printf("0");

}

getchar();

}

int main(void)

{

int x;

printf("Input number:");

scanf("%d",&x);

change(x);

getchar();

return 0;

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