数制转换
2012-09-19 13:13
288 查看
Description
对于任意十进制数转换为k进制,包括整数部分和小数部分转换。整数部分采用除k求余法,小数部分采用乘k取整法例如x=19.125,求2进制转换
整数部分19,小数部分0.125
19 / 2 = 9 … 10.125 * 2 = 0.25 … 0
9 / 2 = 4 … 10.25 * 2 = 0.5 … 0
4 / 2 = 2 … 0 0.5 * 2 = 1 … 1
2 / 2 = 1 … 0
1 / 2 = 0 … 1
所以整数部分转为 10011,小数部分转为0.001,合起来为10011.001 请用堆栈实现上述数制转换
Input
第一行输入一个t,表示下面将有t组测试数据。
接下来的t行的每行包含两个参数n(0<n<10000,且最多有8位小数)和k(1<k<=16),n表示要转换的数值,n可以带小数(也可以不带!),k表示要转换的数制,k必须是正整数。大于10的进制数据用A\B\C\D\E\F表示
Output
对于每一组测试数据,每行输出转换后的结果,小数部分大于8位的,只输出前8位小数
Sample Input
2
19.125 2
15.125 16
Sample Output
10011.001
F.2
对于任意十进制数转换为k进制,包括整数部分和小数部分转换。整数部分采用除k求余法,小数部分采用乘k取整法例如x=19.125,求2进制转换
整数部分19,小数部分0.125
19 / 2 = 9 … 10.125 * 2 = 0.25 … 0
9 / 2 = 4 … 10.25 * 2 = 0.5 … 0
4 / 2 = 2 … 0 0.5 * 2 = 1 … 1
2 / 2 = 1 … 0
1 / 2 = 0 … 1
所以整数部分转为 10011,小数部分转为0.001,合起来为10011.001 请用堆栈实现上述数制转换
Input
第一行输入一个t,表示下面将有t组测试数据。
接下来的t行的每行包含两个参数n(0<n<10000,且最多有8位小数)和k(1<k<=16),n表示要转换的数值,n可以带小数(也可以不带!),k表示要转换的数制,k必须是正整数。大于10的进制数据用A\B\C\D\E\F表示
Output
对于每一组测试数据,每行输出转换后的结果,小数部分大于8位的,只输出前8位小数
Sample Input
2
19.125 2
15.125 16
Sample Output
10011.001
F.2
#include<iostream> #include<stack> using namespace std; int main() { stack<int> mystack; int t,m,k; double b,a; cin>>t; while(t--) { int c,x[100],d=0,i=0,count=0; cin>>b>>k; m=b; a=b-m; while(m) { c=m%k; m=m/k; mystack.push(c); } while(1) { d=a*k; if(d>=k) break; a=a*k; x[i++]=d; count++; } while(!mystack.empty()) { if(mystack.top()<10) { cout<<mystack.top(); mystack.pop(); } else { switch(mystack.top()) { case 10: cout<<"A"; mystack.pop(); break; case 11: cout<<"B"; mystack.pop(); break; case 12: cout<<"C"; mystack.pop(); break; case 13: cout<<"D"; mystack.pop(); break; case 14: cout<<"E"; mystack.pop(); break; case 15: cout<<"F"; mystack.pop(); break; } } } cout<<"."; for(i=0;i<count;i++) cout<<x[i]; cout<<endl; } return 0; }
相关文章推荐
- 基础温习--数制转换
- 笔试面试之 任意数制转换
- 数据结构题典020:栈的应用——数制转换(ANSI C)
- 3.2栈的应用举例----数制转换、括号匹配及行编辑
- 递归算法实现数制转换
- 题目1118:数制转换
- 用栈实现数制转换(java)
- 小数在计算机中为什么会有误差?说明机器数、码制、浮点数、以及数制转换的一些问题
- python常见数制转换实例分析
- 数据结构实践——数制转换(栈)
- 第6周 项目4- 数制转换.
- 第六周项目四-数制转换
- 第6周项目4--数制转换
- 第六周 项目4 数制转换
- 44-题目1118:数制转换
- 数制转换问题
- 第五周-- 项目4 - 数制转换
- 第5周项目4-数制转换
- 第五周项目4—数制转换
- 【项目4 - 数制转换】