救命啊~~!请高手救救!!!有一条题:输入一个数字(以十进制形式输入)然后以二进制的形式输出!
这条程序应该如何写啊??希望高手们可以救救小弟!
----------------解决方案--------------------------------------------------------
int a;
a&1;
a>>=1;
----------------解决方案--------------------------------------------------------
按权的展开方式写就行了
很简单的
呵呵你自己写原代码吧
----------------解决方案--------------------------------------------------------
能不能详细点的解说阿??小弟不明白哦~~!
----------------解决方案--------------------------------------------------------
void fun(int a);//进制转换
main()
{
int a;
scanf("%d",&a);
fun(a);
}
void fun(int a)
{ int b;
if(a)
{
b=a>>1;
fun(b);
printf("%d",a&1);
}
}
----------------解决方案--------------------------------------------------------
main() { int n,b[20],i,j; printf("please input the number:\n"); scanf("%d",&n); for(i=0;n>1;i++) b[i]=n%2; n/=2; for(j=i-1;j>=0;j--) printf(" %d",b[j]); }
如果我这样写有没有错误啊?
----------------解决方案--------------------------------------------------------
#include "Stdio.h"
void main() { int n,b[20],i,j; printf("please input the number:\n"); scanf("%d",&n); for(i=0;n>0;i++) {b[i]=n%2; n/=2;} for(j=i-1;j>=0;j--) printf(" %d",b[j]); }
----------------解决方案--------------------------------------------------------
void Transform(long num,int r)//将一个长整型数NUM转换为一个R进制输出
{
Stack a;//利用栈A存储转换后得到的每一位数字
InitStack(a);//初始化栈
while(num!=0)
{
int k=num%r;
Push(a,k);
num/=r;
}//由低到高求出R进制的每一位并入栈
while(!StackEmpty(a))//由高到低输出R进制数的每一位
cout<<Pop(a);
cout<<endl;
}
程序已经定义完毕,你需要什么进制都可以调用了,比如要将3426改成二进制输出,调用过程为:
void main(){
cout<<"3426的二进制数为:"
Transfrm(3426,2);
}
----------------解决方案--------------------------------------------------------