【练习题】27.2-35进制数转换为10进制数
来源:互联网 发布:c语言在线测试网站 编辑:程序博客网 时间:2024/05/20 06:53
/*输入一个2-35进制数字的字符串(字母一律大写),输出这个数值对应的十进制结果,达到进制转换目的,范围:0-0xFFFFFFFF。*/#pragma once#include <iostream>#include <string>using namespace std;//工具函数,取得字符C对应的数字int getNum(const char& c,const char* array,int length){ for (int i = 0; i < length; i++) { if (array[i] == c) return i; } return -1;}/* *转换函数 */void changeToDidigit(const char* input,int length,int jinZhi){ char array1[35] = { '0','1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z'}; long result = 0; for (int i = length-1; i >= 0; i--) { //取得对应的数字,这个数字就是jinZhi的幂 int num = getNum(input[i],array1,35); if (num > jinZhi) { std::cout << "进制与输入数字不符合" << std::endl; return; } if (num != -1) { int temp = pow(jinZhi, length - i-1); //std::cout << "幂==" << temp << std::endl; result += num*temp; } } std::cout << result << std:: endl;}int main(){ std::cout << "输入字符串:"; std::string str; std::cin >> str; std::cout << "输入进制:"; int jinZhi = 0; std::cin >> jinZhi; changeToDidigit(str.c_str(),str.size(),jinZhi); return 0;}
运行结果:
0 0
- 【练习题】27.2-35进制数转换为10进制数
- 10进制数转换为二进制
- 第3章练习题--3--二进制转换为十六进制--2798
- ios 16进制数转换为10进制数
- 10进制数转换为其它进制
- 面试:字符串: 字符串转换为10进制数
- 将七进制数转换为十四进制数
- vim 转换为16进制数
- 十进制转换为其他进制数
- 将整数转换为进制数
- 【练习题】28.字符串转换
- 32位16进制转换为10进制数
- M 进制数转换为N进制数
- string类型转换为16进制数strtol
- 十进制数转换为任意进制数
- 将A+B转换为指定进制数
- 十进制数转换为N进制数
- N进制数转换为十进制数
- C#实现 Linq 序列的Distinct—— IEnumerable<T>.Distinct<T>()——IEqualityComparer
- HOJ 13348 Finding Lines 画直线最多点
- C#文件流的操作
- Visual C# 2010学习笔记一之命令控件的使用
- 对面向接口编程的理解
- 【练习题】27.2-35进制数转换为10进制数
- [leetcode-63]Unique Paths II(c)
- 在转换为 UTC 时大于 DateTime.MaxValue 或小于 DateTime.MinValue 的 DateTime 值无法系列化为 JSON
- centOS安装qt4.8.0 - - ERROR: Package gstreamer-app-0.10 not found
- ffmpeg+ffserver搭建流媒体服务器
- SGU134 Centroid 树形DP基础题,求树的重心
- android将LinearLayout中的内容保存为Bitmap。
- java执行顺序
- 堆和栈