学校1022: 进制转换问题
来源:互联网 发布:卓讯数据库打开 编辑:程序博客网 时间:2024/05/01 03:38
Description
大家都知道,计算机中是以二进制存储的!但是在现实生活中,我们遇到过各种各样的进制情况,我们接触得最多的就是十进制,不过,生活中还存在各种进制计数的情况。例如:一个星期七天是7进制、一年十二个月,是12进制等等。小明最近在学c语言,熟悉了c语言中的各种进制转换问题,所以就尝试着各种进制转换的程序,现在他想写一个程序,把一个无符号数n,转化成在b进制下的表示。例如:n为10,b为2,则转化后为1010。又如:n为10,b为16,则转化后为0XA.
Input
输入的第一行为一个正整数t ( t<=10000 ),表示一共有t组测试数据。每组两个整数,分别为n,b(0 <= n <= 1000000000,2<=b<=16)。n表示要转化的数,b表示b进制。
Output
输出n在b进制下的表示。(注意:如b为16输入时记得加上0X,字母都是以大写的形式
Sample Input
4
10 2
10 16
100 7
1000000000 16
Sample Output
1010
0XA
202
0X3B9ACA00
#include <stdio.h>#include <stdlib.h>#define N 10000#define K 25int tran(int num[N],int B,int n){ char ch[K]="0123456789ABCDEFGHIJK"; int i=0,j,temp; do { num[i]=n%B; i++; } while((n/=B)!=0); /* for(j=0; j<i/2; j++) { temp=num[j]; num[j]=num[i-1-j]; num[i-1-j]=temp; }*/ //或者直接输出 if(B==16) printf("0X"); for(j=i-1;j>=0;j--) printf("%c",ch[num[j]]); printf("\n"); return i;}int main(){ int B,num[N],i,j,len,t; long n; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&B); len=tran(num,B,n); //for(i=0; i<len; i++) // printf("%d",num[i]); } return 0;}
0 0
- 学校1022: 进制转换问题
- 1022: 进制转换问题
- 学校超市选址问题
- 学校网络问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题!
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 进制转换问题
- 项目有感
- 学校1020: Jumping Cows
- CocoaChina测试题 小记一
- Java接口 抽象类 内部类
- 两点距离
- 学校1022: 进制转换问题
- 小学生算术
- 友元函数的几点注意事项和实例
- A+B Problem(V)
- UML之活动图
- 常用快捷键—Webstorm入门指南
- 学校1026: 大数加法
- ffmpeg(3):ffmpeg结合SDL2.0解码音频流
- 另一种阶乘问题