当前位置: 首页 > news >正文

n进制转化为m进制

n进制转化为m进制

最开始看到这个题的时候,我还在想有没有什么方法可以直接从n进制转化为m进制,但是我放弃了,所以还是使用了一步一步来的方法。

首先将n进制转化为10进制,再将10进制转化为m进制。

#include <iostream>using namespace std;//将n进制转化为10进制
int NTOD(char *now_number,int now_base_system)
{int sum = 0, weight = 1;int len = strlen(now_number);for (int i = len - 1; i >= 0; i--){if (now_number[i] >= 'A' && now_number[i] <= 'Z'){sum = sum + (now_number[i] - 'A' + 10) * weight;}else if (now_number[i] >= 'a' && now_number[i] <= 'z'){sum = sum + (now_number[i] - 'a' + 10) * weight;}else if (now_number[i] >= '0' && now_number[i] <= '9'){sum = sum + (now_number[i] - '0') * weight;}weight = weight * now_base_system;}return sum;
}
//将10进制转化为m进制
void DTOM(int ten_base_system_number, int want_To_base_system, char* wang_to_number)
{int m = 0, r;do{r = ten_base_system_number % want_To_base_system;if (r >= 10){wang_to_number[m++] = r - 10 + 'A';}elsewang_to_number[m++] = r + '0';ten_base_system_number /= want_To_base_system;} while (ten_base_system_number != 0);wang_to_number[m] = '\0';for (int i = 0, j = m - 1; i < j; i++, j--){char t = wang_to_number[i];wang_to_number[i] = wang_to_number[j];wang_to_number[j] = t;}
}
int main(int argc, char* argv[])
{int now_base_system, want_To_base_system;char now_number[100], wang_to_number[100];cout << "输入数字现在的进制、数字值、想要转换的进制" << endl;cin >> now_base_system;cin >> now_number;cin >> want_To_base_system;int ten_base_system_number = NTOD(now_number, now_base_system);DTOM(ten_base_system_number, want_To_base_system, wang_to_number);cout << "转换后的结果为: " << wang_to_number << endl;system("pause");return 0;
}

运行结果:
在这里插入图片描述


http://www.taodudu.cc/news/show-5435446.html

相关文章:

  • 平衡三进制小数详解与进制转换
  • 更高效的数据交互实现丨 DolphinDB Arrow 插件使用教程
  • ICode国际青少年编程竞赛- Python-2级训练场-for循环练习2
  • C#反编译太容易了,转qt怎么样?
  • leetcode题目9
  • 10G UDP协议栈 IP层设计-(5)IP RX模块
  • N进制到M进制-C语言
  • 概说《TCP/IP详解 卷2》第2章 mbuf:存储器缓存
  • 任意N进制数 转换为M进制数
  • C语言笔记:数制与进制(数制)之间转换问题
  • hive表字段里有换行符,导致一行变多行或者字段错乱
  • mbuf(存储器缓存)详解【转】
  • TCP IP详解卷2之mbuf宏与函数
  • Unix/Linux编程:四种mbuf
  • 2022CTF培训(十三)虚拟化QEMU架构分析QEMU CVE示例分析
  • C++ Primer Plus(第6版) 第3章编程练习
  • 【python-docx 07】使用word样式
  • python读取docx文件,就是如此简单
  • Caused by: java.lang.ClassNotFoundException: freemarker.template.Configuration
  • A component required a bean of type ‘XXX‘ that could not be found 解决办法
  • spring aop 自定义注解配合swagger注解保存操作日志到mysql数据库含(源码)
  • 小而美 | Mac上鲜为人知,但极大提升效率的小工具
  • 防火墙体系结构的组合形式
  • E - B-莲子的机械动力学
  • 需要克服的缺点
  • 高版本springboot整合swagger
  • PHP. 03 .ajax传输XML、 ajax传输json、封装
  • ajax请求php返回xml数据格式,ajax传输的数据格式(XML,json)怎么获取解析
  • JavaScript基础之Ajax总结大全
  • Ajax入门和发送http请求
  • 04-Ajax传输json和XML
  • python网络爬虫——爬虫第三方库的使用(二)
  • ajax使用频率,11-Ajax详解
  • 使用Ajax发送http请求(getpost请求)
  • 人加智能FPGA应用实践-AI快速进化
  • Mac显示证书不受信任或者无效的解决办法