展开全部
如果给的是字符串的话先用这个程序转换成整型
char ch[33];
int i;
int a = 0;
scanf("%s",ch);
printf("%s\n",ch);
for(i=0;i<32;i++)
{
a = a | ((ch[i]-'0')<<32-1-i);
}
printf("%d\n",a);
a就是转换后的数
剩下的就一样了
#include <stdio.h>
#include <string.h>
int main()
{
char ch[33];
int a;
int i,j;
int flag;
scanf("%d",&a);
if(a >= 0)
flag = 0;
else
{
flag = 1;
a*=-1;
}
for(i=0;a;i++)
{
if(a != a/2*2)
ch[i] = '1';
else
ch[i] = '0';
a/=2;
}
ch[i] = '\0';
i = strlen(ch);
if(flag)
putchar('1');
else
putchar('0');
for(j=0;j<31-i;j++)
putchar('0');
for(j=0;j<i;j++)
putchar(ch[i-1-j]);
putchar('\n');
return 0;
}
水平有限 实现的不怎么优雅 不过基本实现了要求
别的编译器没有测试 在gcc下测试了几组数据通过 如果有问题再留言
char ch[33];
int i;
int a = 0;
scanf("%s",ch);
printf("%s\n",ch);
for(i=0;i<32;i++)
{
a = a | ((ch[i]-'0')<<32-1-i);
}
printf("%d\n",a);
a就是转换后的数
剩下的就一样了
#include <stdio.h>
#include <string.h>
int main()
{
char ch[33];
int a;
int i,j;
int flag;
scanf("%d",&a);
if(a >= 0)
flag = 0;
else
{
flag = 1;
a*=-1;
}
for(i=0;a;i++)
{
if(a != a/2*2)
ch[i] = '1';
else
ch[i] = '0';
a/=2;
}
ch[i] = '\0';
i = strlen(ch);
if(flag)
putchar('1');
else
putchar('0');
for(j=0;j<31-i;j++)
putchar('0');
for(j=0;j<i;j++)
putchar(ch[i-1-j]);
putchar('\n');
return 0;
}
水平有限 实现的不怎么优雅 不过基本实现了要求
别的编译器没有测试 在gcc下测试了几组数据通过 如果有问题再留言
更多追问追答
追问
我qq 55530544 q上说吧。收到请加好友注明进制转换,多谢
追答
加是加了 不过我平时几乎不上 很难赶上同时在线的时间 还有什么问题可以在这里或者hi留言啊 一次把问题说清楚
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询