- #include <stdio.h>
- void trans(int x)
- {
- int a[30];//我算过了,1亿好像才29位的二进制,一般不用算
- //这么大的数了吧~~
- int i=0,rem;
- do{
- rem=x%2;x=x/2;
- a[i]=rem;
- i++;
- }while(x!=0);//这个算法看你的代码知道你懂!:)
- while(i>0)
- printf("%d",a[--i]);
- printf("\n");//这就是我的精华了,倒输出正确顺序的数~
- }
- int main(int argc, const char * argv[]) {
- //初始化
- int a=0,b=0;
- //提示输入想转换的数字(2-16)
- printf("输入想转换的十进制数字:\n");
- scanf("%d",&a);
- printf("输入想转换的进制(如:八进制输入『8』)\n");
- scanf("%d",&b);
- if (8==b) {
- printf("%d的八进制是%o\n",a,a);
- }else if(16==b){
- printf("%d的八进制是%x\n",a,a);
- }else if(2==b){
- trans(a);
- }else {
- printf("输入有误\n");
- }
- return 0;
- }
复制代码 二进制段 拷贝别人的。嘿嘿 也就是trans 函数
|