但输入一个数字时,怎么样转换成二进制数,用C++实现

p0303230 2010-05-26 02:22:20
但输入一个数字时,怎么样转换成二进制数,用C++实现


写出代码

谢谢
...全文
235 点赞 收藏 12
写回复
12 条回复
gz_qmc 2010年05月27日
这个鸡巴鸟论坛,老是自动删除我的空格
回复 点赞
gz_qmc 2010年05月27日
//#include "string.h"
//
//void ToBit(long x,char *bin,long len)
//{
// union
// {
// long num;
// unsigned v:1;
// }b;
// char *temp=new char[32];
// memset(temp,0x30,32);
// int pos=32;
// while(pos--)
// {
// b.num=x;
// temp[pos]+=b.v;
// x>>=1;
// }
// int max=len<33?len:33;
// memcpy(bin,temp,max);
// delete temp;
//}


//void main()
//{
// long x=2;
// char buf[33]={0};
// ToBit(x,buf,32);
// printf("%s\n\n",buf);
//}
回复 点赞
gz_qmc 2010年05月27日
#include "string.h"

void ToBit(long x,char *bin,long len)
{
union
{
long num;
unsigned v:1;
}b;
char *temp=new char[32];
memset(temp,0x30,32);
int pos=32;
while(pos--)
{
b.num=x;
temp[pos]+=b.v;
x>>=1;
}
int max=len<33?len:33;
memcpy(bin,temp,max);
delete temp;
}


void main()
{
long x=2;
char buf[33]={0};
ToBit(x,buf,32);
printf("%s\n\n",buf);
}
回复 点赞
打酱油的扫地僧 2010年05月26日
上面打字打错了,最简单的就是用bitset,呵呵。
回复 点赞
p0303230 2010年05月26日
谢谢各位啦
回复 点赞
打酱油的扫地僧 2010年05月26日
楼上的方法都行,最简单的就是用不用bitset,下面是我提供的一种方法:

#include <iostream>
using namespace std;

int main()
{
int i;
int array[32];

cin >> i;

for (int j = 31; j != -1; --j)
{
array[j] = i & 1;
i = i >> 1;
}

j = 0;

while(array[j] == 0)
{
++j;
}

for ( ; j!= 32; ++j)
{
cout << array[j];
}

cout << endl;


return 0;
}
回复 点赞
mskmc_mc 2010年05月26日
支持C++标准库的bitset
回复 点赞
beginsoft_nj 2010年05月26日
char *_itoa( int value, char *string, int radix );
回复 点赞
liutengfeigo 2010年05月26日
直接控制输出格式???
回复 点赞
AlanBruce 2010年05月26日
。。。。。。。。。。。。。。。。。。。。
回复 点赞
gykgod 2010年05月26日
嘿嘿,我的垃圾代码

#include <iostream>
using namespace std;
int main()
{
int a=0;
int i=0;
int j=0;
int stack[1024] = {0};
int count = 0;

cin >> a;

while (a !=0)
{

i = a/2;
j = a%2;
a = a/2;
count ++;
stack[count-1] = j;

}
while(count!=0)
{
cout << stack[count-1];
count--;
}
return 0;
}
回复 点赞
selooloo 2010年05月26日
简单点用bitset
#include <iostream>
#include <bitset>
using namespace std;

int main(void)
{
int n;
bitset<32> nb;

cin>>n;
nb=n;
cout<<nb<<endl;
system("pause");
return 0;
}
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告