主题:十进制转二进制////
我是一片叶子
[专家分:210] 发布于 2005-10-20 16:22:00
大家可以编都可以编十进制转换为十六进制,那请问那位仁兄可以帮一下叶子编一个
转为二进制的数呢?也就是把一个十进制数转换为二进制数输出!要用程序编写!为C语言:
回复列表 (共8个回复)
沙发
megadeath [专家分:460] 发布于 2005-10-23 17:43:00
do
{
mod = div %2;
div = div /2;
printf("%d", mod);
}while(div >0);
板凳
BloveIce [专家分:30] 发布于 2005-10-26 21:42:00
1楼的,输出顺序反了吧?!
3 楼
megadeath [专家分:460] 发布于 2005-10-29 00:27:00
一着急的确弄反了,设置个数字逆顺序输出就ok了
int output[20] = {0};
int num = 0;
do
{
mod = div %2;
div = div /2;
output[num ] = mod;
num ++;
}while(div >0);
num--;
for (; num >= 0; --num)
{
printf("%d", output[num]);
}
4 楼
我是一片叶子 [专家分:210] 发布于 2005-10-29 10:34:00
请问还其它做法吗?我想不要用除,
5 楼
BloveIce [专家分:30] 发布于 2005-10-30 10:30:00
最直接的当然是调用C的函数库了 &-)
在"stdlib.h"中有一个函数: itoa; 它的功能是可以把指定的整数转换成任意进制(进制在2~36之间)的字符串.该函数原型如下:
char * itoa (int num, char *str, int radix)
其中:num是你给出的整数;
str是一个字符串数组,转换后的结果将存放其中
radix指定转换输出的进制;最小值是2,最大值是32。
以本题为例:
#include "stdlib.h" //注意,一定要加入这一句哟!
int input;
char output[20];
......
itoa(input, output, 2); //因为是转换成二进制,所以第三个参数为2
printf("The binary of %d is %s", input, output);
......
另外:1、itoa()这个函数返回由str所指向的指针,一般没有返回错误值。
2、调用itoa()时,一定要用足够长度的字符串来保存转换后的结果,所需
最大长度为17个字节。
3、与itoa()相类似还有一个函数:ltoa(),它的作用是将长整数转换成任
意进制(进制在2~36之间)的字符串。用法和itoa几乎一样,但要注意转
换结果所需的最大长度为33个字节。
6 楼
我是一片叶子 [专家分:210] 发布于 2005-10-31 13:33:00
是吗!那我得试试!谢谢
7 楼
langboy [专家分:130] 发布于 2005-11-03 22:58:00
char * itoa (int num, char *str, int radix)
确实这个函数,不错的
8 楼
yaopo [专家分:240] 发布于 2005-11-08 18:29:00
unsigned a;
cin>>a;
while(a)
{cout<<a&0x8000;
a=a<<1;
}
或许可以。(假定整数为2字节)
我来回复