直接贴代码
#include "stdio.h" int main() { int num, num1, r, n = 0; char dtor[32]; printf("请输入要转换的数:"); scanf("%d",&num1); num = num1; printf("要转换成几进制的数(2~16)"); scanf("%d",&r); do { if(num % r >= 10) dtor[n] = num%r+55; else dtor[n] = num%r+48; num = num / r; if (num == 0) break; n++; }while(1); printf("十进制数%d与%d进制数",num1,r); for(;n >= 0; n--) printf("%c",dtor[n]); printf("等值"); }
十六进制数相加
#include<stdio.h> int main() { __int64 a,b; // 由于定义的数字最多有16位长度,所以定义为int64 while(scanf("%I64X%I64X",&a,&b)!=EOF) printf(a+b>=0?"%I64X\n":"-%I64X\n",a+b>0?a+b:-a-b); // 完全是考察输出格式的为题,三目运算符的绝佳运用。。 return 0; }