进制转化(小bug)
来源:互联网 发布:采购平台软件 编辑:程序博客网 时间:2024/05/22 15:31
//有任意进制先转化为10进制,再转化为另一进制的代码
//但在检查输入的是否是正确的数时,有一点bug,过几天再解决!
//101101011 2 8 结果为:553
//76450273 8 2 结果为:111110100101000010111011
//aabc89d 16 10 结果为:179030173
//但在检查输入的是否是正确的数时,有一点bug,过几天再解决!
//101101011 2 8 结果为:553
//76450273 8 2 结果为:111110100101000010111011
//aabc89d 16 10 结果为:179030173
#include<stdio.h>#include<string.h>#include<vector>#include<math.h>using namespace std;bool check(char buf[], int D){ //对输入进来的数进行检查,看是否有不满足的 //如2进制,你输入一个:1012110,就是错误的了int n;//buf[]中每一位的int型数字for (int i = 0; i < strlen(buf); i++){if (buf[i] >= 'a'&&buf[i] <= 'z')n = buf[i] - '0' - 39;else if (buf[i] >= 'A'&&buf[i] <= 'Z')n = buf[i] - '0' - 7;else if (buf[i] >= '0'&&buf[i] <= '9')n = buf[i] - '0';if (n >= D|| n < 0)return false;}return true;}int to_Ten(char buf[], int D){int n;int num = 0;//10进制下的值if (check(buf, D)){for (int i = 0; i < strlen(buf); i++){if (buf[i] >= 'a'&&buf[i] <= 'z')n = buf[i] - '0' - 39;else if (buf[i] >= 'A'&&buf[i] <= 'Z')n = buf[i] - '0' - 7;else if (buf[i] >= '0'&&buf[i] <= '9')n = buf[i] - '0';num += n*pow(double(D), double(strlen(buf) - i - 1));}return num;}else{printf("输入错误,有大于%d的数字\n", D);}}vector<int> to_Decimal(int data_10, int D, vector<int> &v){v.clear();if (data_10 == 0)printf("0");while (data_10 != 0){v.push_back(data_10%D);data_10 /= D;}return v;}int main(){char buf[12]; //存放任意进制的数字int D1; //转化前数的进制int D2; //转化后数的进制int data_10;//10进制下的值int data_other;//D2进制的结果值vector<int> v;//freopen("D://input.txt", "r", stdin);printf("输入你的当前进制下的数据:");while (scanf("%s", buf) != EOF){printf("输入这个数的进制:");scanf("%d", &D1);printf("输入你要转换的进制:");scanf("%d", &D2);data_10 = to_Ten(buf, D1); //将任意进制的数转化为10进制v = to_Decimal(data_10, D2, v);//将10进制的数转化为D2进制下的数printf("该%d进制下的结果为:", D2);for (int i = v.size() - 1; i >= 0; i--){printf("%d", v[i]);}printf("\n");}return 0;}
阅读全文
0 0
- 进制转化(小bug)
- (进制转化)
- java小练习(11)--进制转化(BigInteger高级)
- 数据类型转化Bug
- 小bug
- 小bug
- 小bug?
- 小bug
- 进制转化(常用的简单转化)
- 进制转化(高到低)
- C++ sstream的一个小bug(也算不上bug)
- jdk中的小bug(一)
- fseek()的一个小BUG
- 前端学习小bug总结(一)
- javascript对象小探之七——数值进制的表示、解析、转化
- 小程序 转化html
- 进制转化(10->2)
- 进制转化(C++完整版)
- redis多个数据源配置
- JS 删除字符串最后一个字符的几种方法
- JavaSE编程基础
- java 基础类型对应的Object在+-><运算符中的问题
- 关于错误处理
- 进制转化(小bug)
- Linux学习收藏--不定期更新
- ZOJ --- 2974 倒水 【思维 + 矩阵快速幂】
- 感知机
- web前端学习路径
- wireshark抓包过滤器
- C++自己写的程序中,出现“无法启动(0xc00007b)”的解决方法
- 【webview】android webview 显示空白页问题解决
- 数据的本地存储——Json