首页 > 其他分享 >进制转换

进制转换

时间:2023-04-21 17:58:32浏览次数:38  
标签:10 转换 进制 num2 int num sl

 1.问题描述

  给定一个M进制的数x,实现对x向任意的一个非M进制的数的转换。

思路:

 2.定义int n(输入的数字的进制),string sl(输入的数字),int m(转换后数字的进制),char ans[100](存放字符)

 3.用map<char,int>num1;map<int,char>num2;存放对应关系;

 4.num = num * n + num1[sl[i]];//转化成10进制;

  5.ans[tem++] = num2[num % m], num /= m;//转化成m进制

  6.逆向输出字符数组;

#include<iostream>
#include<map>
#include<cstring>
using namespace std;
int n, m, num, tem; string sl; char ans[100];
map<char, int> num1; //把其他进制数字转成10进制;用map建立对应关系;
map<int, char> num2;
int main() {
for (int i = 0; i < 10; i++)
num1[i + '0'] = i, num2[i] = i + '0';
for (char i = 'A'; i <= 'F'; i++) {
num1[i] = i - 'A' + 10, num2[i - 'A' + 10] = i;
}
cin >> n >> sl >> m;
for (int i = 0; i < sl.length(); i++)
num = num * n + num1[sl[i]];//转化成10进制;
while (num)
ans[tem++] = num2[num % m], num /= m;//转化成m进制;
for (int i = tem - 1; i >= 0; i--)
{
printf("%c", ans[i]);
}
return 0;
}

标签:10,转换,进制,num2,int,num,sl
From: https://www.cnblogs.com/hbro/p/17341253.html

相关文章

  • Qt之QMake编译转换为CMake编译
    一、前言-QMake和CMake都是用来控制编译过程的构建系统,最终生成可在选择的编译器环境中使用的本机makefile和工作区。简单来说,QMake和CMake就像类似于作曲,makefile类似于乐谱,最终由编译器完成乐章的演奏。那么QMake和CMake有什么区别呢?-对于纯Qt项目,QMake更加好用。QMake与QtCr......
  • hive 行列转换案例
       0 stu表数据: stu:idnamehello,youzm2008hello,mezm2015  1实现单词计数:    (列转行)  --->split切分+explode(炸开) 1.0数据拆分成数组selectsplit(id,',')fromstu;得到数组[hello,you][hello,me] 1.1继续将数组拆分(hive......
  • Python下使用串口发送十六进制数据
    importserialfromtimeimportsleepdefrecv(serial):whileTrue:data=serial.read_all()ifdata=='':continueelse:breaksleep(0.2)returndataif__name__=='__main_......
  • 将MySQL当中的数据表在PHP当中转换成数组并打印,为什么没有显示到网页上面呢?
    如果你已经成功将MySQL中的数据表转换成了PHP数组,并且没有在网页上看到输出,那么可能是因为你没有将数组中的数据正确地渲染到HTML代码中。以下是一个简单的示例代码,演示如何将PHP数组转换为HTML表格并输出到网页上:phpCopycode<?php//连接到MySQL数据库$servername="local......
  • 时间转换为人类可读
    <dependency> <groupId>com.github.xkzhangsan</groupId> <artifactId>xk-time</artifactId> <version>3.2.4</version></dependency>/***将时长转换为人类可读时间(精确到分钟)*例如1440===>1天*例如70==......
  • 科学技术法与数值之前的转换
    一、JAVA1、科学技术法转数值BigDecimalza=zaVal1.divide(val2);//9.05E-8Stringza2=za.toPlainString();//0.00000009052、数值转科学技术法BigDecimalza4=newBigDecimal(za2);//9.05E-8Stringza5=za.toString();//9.05E-8二、JS1、科学技术法转数值func......
  • 每个节点上的cadvisor采集数据后通过aggregate api将转换交给 metric-server
    metric-server主要用来通过aggregateapi向其它组件(kube-scheduler、HorizontalPodAutoscaler、Kubernetes集群客户端等)提供集群中的pod和node的cpu和memory的监控指标,弹性伸缩中的podautoscaler就是通过调用这个接口来查看pod的当前资源使用量来进行pod的扩缩容的。需要注意的是......
  • 将人民币金额转换为大写 跨单位加零
    /**数字金额大写转换(可以处理整数,小数,负数)*/functionupDigit(n){varfraction=['角','分'];vardigit=['零','壹','贰','叁','肆','伍','陆','柒','......
  • 3-2 输入一个8位二进制数,将其转换为十进制数输出。
    设计思路:c++语言的循环结构以及函数的定义及使用相结合可实现程序的运行。 代码:#include<iostream>usingnamespacestd;doublepower(doublex,intn);intmain(){intvalue=0;cout<<"Enteran8bitbinarynumber:";for(inti=7;i>=0;i--)char......
  • 数制转换
    自然语言解决问题:该题目主要用来处理不同进制间互相转化,将原数转换成十进制数字,接着求出转换成目标数制后字符数组的长度,并逆序打印字符数组。具体代码:#include<stdio.h>#defineMAXCHAR101intchar_to_num(charch);charnum_to_char(intnum);longsource_to_decimal(char......