任意进制间的转换
2015-01-02 09:59
141 查看
以前只是研究某两个进制A,B之间的转化,现在推广到任意进制。
其中十进制转为B进制:除B取余,倒序排列
目前的缺点是不能算小数和负数。
#include <bits/stdc++.h> using namespace std; int toTen(const string & old, const int base) { int res = 0; for(size_t i = 0; i != old.length(); i++) { if(isupper(old[i])) res = res * base + old[i] - 'A' + 10; else if(islower(old[i])) res = res * base + old[i] - 'a' + 10; else res = res * base + old[i] - '0'; } return res; } deque<char> Tento(int ten, const int base) { deque<char> res; while(ten > 0){ int t = ten % base; res.push_front(t>=10 ? (char)(t-10+'A') : (char)(t+'0')); ten /= base; } return res; } int main() { int x, y, ten; string old; printf("输入原数:"); cin >> old; printf("输入原数进制:"); cin >> x; printf("输入要转换到的进制:"); cin >> y; ten = toTen(old, x); deque<char> res = Tento(ten, y); for(size_t i = 0; i != res.size(); i++) printf("%c", res[i]); printf("\n"); return 0; }
相关文章推荐
- php任意进制转换base_convert()
- C++ 任意进制转换为十进制,十进制转换为任意进制
- 无符号十进制整数转换成任意进制数
- 将10进制数转换成任意进制数
- 杭电1335-任意进制的转换
- 任意进制转换的递归实现
- 将一个数转换成小于它的任意进制(java版)
- 无符号十进制整数转换成任意进制数
- PHP常用函数:62进制转换及任意进制之间转换函数
- USTC机试——十进制转换成任意m进制数字
- 任何进制的任何数(没有大小限制)向任何进制的数的转换方法(进制原则可以任意,但是大于十表示不方便)
- Python学习:基础(5)任意**m进制到n进制**的转换
- 大数的任意进制之间的转换(九度OJ题目1080)
- 任意进制整数之间的相互转换(C++实现)
- 14.2线性表之STL实现10进制向任意进制的转换
- 任意十六进制数转换成十进制数----不管你输入多长都能转换
- C++趣味编程算法//求一个十进制数转换为任意进制数
- itoa()、atoi()、任意进制转换
- 题目1080:进制转换(任意进制直接转换方法)
- 用"指定字符组成的任意进制"转换生成不带4的卡号