C语言:怎么将十进制数字转换为二进制字符串,谁能帮我写个函数

如题所述

 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 比如:255=(11111111)B 这个不 是一下就会的得勤加练习 就会做到熟能生巧。 望采纳
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-13

纯手打,支持各种进制

#include <iostream>
using namespace std;
char *myitoa(int num,char *str,int radix);
int main()
{
int a;
char *p=new char[100];
while(cin>>a){
cout<<myitoa(a,p,2)<<endl;
}
return 0;
}
char *myitoa(int num,char *str,int radix)
//num是输入数字,str是存放对应的字符串,radix是进制
{
char *temp=new char[10];
int a,i=0,j=0;
if(num<0) 
{
str[i++] = '-';
num *= -1;
}
while(num>0)
{
a = num%radix; 
if(a > 9)
temp[j++] = a -10 +'A';
else
temp[j++] = a +'0';
num /= radix;
}
while(j>0)
{
str[i++] = temp[--j];
}
str[i] = '\0';
return str;
}

本回答被提问者和网友采纳
第2个回答  2013-07-05
用itoa()函数就可以啦,
楼上不地道,你敢说你是纯手打的吗?之前就有的复制了一下吧?呵呵
第3个回答  2013-07-05
int binary(int n, char* pszb)
{
int a=1, i;
for(i=31; i>=0; i--)
{
if( n&a)
pszb[i] = '1';
else
pszb[i] = '0';
a<<=1;
}
return 0;
}
第4个回答  2013-07-05
char *s=itoa(); .
相似回答