求任意两个不同进制非负整数的转换

求任意两个不同进制非负整数的转换
题目描述求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

输入输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。毕业论文 

输出可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。


样例输入4 123 10


样例输出27

提示 [+]*** 提示已隐藏,点击上方 [+] 可显示 ***

来源2008年北京大学图形实验室计算机研究生机试真题

【思路】

[cpp] view plaincopyprint?
01./*********************************
02.*   日期:2013-2-19
03.*   作者:SJF0115
04.*   题号: 题目1130: 数制转换
05.*   来源:
06.*   结果:AC
07.*   来源:2008年北京大学图形实验室计算机研究生机试真题
08.*   总结:
09.**********************************/ 
10.#include <string.h>  
11.#include <stdio.h>  
12. 
13.char str[1001]; 
14.char ans[1001]; 
15./*
16.* 转换为十进制
17.*  str是a进制数字
18.*/ 
19.long long int ToD(int a){ 
20.    int c,len,i; 
21.    long long int sum,w; 
22.    len = strlen(str); 
23.    //转换为十进制的数字  
24.    sum = 0; 
25.    //权值  
26.    w = 1; 
27.    //从低位到高位遍历每一个数字  
28.     for(i = len-1;i >= 0;i--){ 
29.         //0 - 9  
30.        if(str[i] >= '0' && str[i] <= '9'){ 
31.            c = str[i] - '0'; 
32.        } 
33.        //A - F  
34.        else if(str[i] >= 'A' && str[i] <= 'F'){ 

[1] [2] 下一页

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有