C语言:编写一函数,求某正整数的二进制形式

来源:百度知道 编辑:UC知道 时间:2024/05/13 09:44:40
刚学到函数的方法

思路:除二取余数,当除数为0时停止,反序输出数组的值(即余数)
void convert(int m)
{
int a[16]={0},j=0;

for (int i=0;i<16;i++)
{
if (m!=0)
{
j++;
a[i]=m%2;
m=m/2;
}
else
break;
}
for (int k=15;k>=0;k--)
{
cout<<a[k];
}
cout<<endl;
}

可以的。
思路:求二进制形式,就是求各位二进制的数码。
例如:3可以表示为0011=2^2+1,同样17=00010001。
过程如下:
用一个数组,存储2的各位次方。如a[]={0,2,4,8,16,32,64,128,256}
现在求18的二进制代码
18和32比较 小
所以最高位为0
和64比 小 第二位为0
和32比 小 第三位为0
和16比 大 四位为1
然后用 18-16=2
2和8比 小 第五位为 0
2和四比 小 第六位为 0
2和2比 相等(不小于) 第六位为1
2-2=0 剩下的全为0 ,结束。
过程已经很清楚了,代码自己写。锻炼下。

将十进制整数转换为二进制的方法很多,这里介绍的实现方法利用了C语言能够对位进行操作的特点。对于C语言来说,一个整数在计算机内就是以二进制的形式存储的,所以没有必要再将一个整数经过一系列的运算转换为二进制形式,只要将整数在内存中的二进制表示输出即可。
*程序说明与注释
#include<stdio.h>
void printb(int,int);
void main()
{
int x;printf("Input number:");