c++数制2~16数进制的转换

通项公式:
while(n!=0){
a[i]=n%d;
n=(n/d);
i++;
}
其中n为要转换的十进制的数。d为要转换的数制,如二进制为2.

#include<iostream>
using namespace std;

int main() {
	int i,n,d,a[100];//n 为要转换的十进制数,d为要转为的数制 
	while(cin>>n>>d){
		i=0;
		while(n!=0){
			a[i]=n%d;
			n=(n/d);
			i++;
		}
		while(i--) cout<<a[i];
		cout<<endl;
	}
	return 0;
}

缺点:因为数组a存放的是数字,上述代码只能转换小于10的数制。在16进制下,其实当a[i]的值为11时,我们只要建立一个映射就可以了,11对应输出B。可以建立另一个数组,将数组a作为下标。

改进:通用的的进制的转换(16以内):

#include<iostream>
using namespace std;

int main() {
	int i,n,d,k,a[100];//n 为要转换的十进制数,d为要转为的数制 
	char Hex[16] ;
	for(i=0;i<10;i++)Hex[i]='0'+i;
	for(i=10;i<16;i++)Hex[i]='A'+(i-10);
	while(cin>>n>>d){
		i=0;
		while(n!=0){
			a[i]=n%d;
			n=(n/d);
			i++;
		}
		while(i--){
			k=a[i];
			cout<<Hex[k];
		} 
		cout<<endl;
	}
	return 0;
}

在这里插入图片描述

热门文章

暂无图片
编程学习 ·

Linux批量修改文件名

#!/bin/bash #生成文件的list文本,复制文件 for file in `cat val.txt` do cp val1/$file* val/ done#当前文件夹下重命名 for file in val/*-1.png; do mv "$file" "${file%-1.png}.png"; done
暂无图片
编程学习 ·

oracle创建索引语句

oracle : 单索引 create index 索引名称 on table(column)删除索引 drop index 索引名称复合索引 create index WBSINDEX ON project_info(wbs,is_delete)查询某张表中所有索引 select * from ALL_INDEXS where table_name = project_info查询某张表加了索引的列 select * from…
暂无图片
编程学习 ·

浅析原型模式中的clone()

更多精彩文章请访问我的个人博客(zhuoerhuobi.cn)最近学习到设计模式中的原型模式,在学习过程中,产生了对clone()实现的原理和效率的兴趣。原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的…
暂无图片
编程学习 ·

服务器使用Nginx部署Springboot项目(jar包)

部署SpringBoot项目到后台Nginx实现多项目反向代理1,将java项目打成jar包2.准备工具3.将jar包传入服务器3.使用Xshell运行jar包4.下载安装nginx5.配置nginx.conf6通过域名访问(成功) 1,将java项目打成jar包 这里我用到的是maven工具这里有两个项目,打包完成后一个为demo.jar,另…
暂无图片
编程学习 ·

销售分析 II

题目描述:Table: Product+--------------+---------+ | Column Name | Type | +--------------+---------+ | product_id | int | | product_name | varchar | | unit_price | int | +--------------+---------+ product_id 是这张表的主键 Table: Sales+----…
暂无图片
编程学习 ·

APP免费渠道,运营者不可不知的基础常识

​随着移动终端的迅速普及,各类APP如雨后春笋般涌现出来,但是真正的运营成功的产品却寥寥无几。从瓜分渠道资源到抢占用户的过程中,很多同行都明显的感觉到,渠道平台所带来的量日益减少,但是刊例价格却一再攀升。就像圈内的朋友和我在聊天的提到的:“现在渠道的大腿真心越…
暂无图片
编程学习 ·

redis集群springboot连接

谢谢参考:https://blog.csdn.net/CNZYYH/article/details/85696674一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式。利用redis这两种场景的消息队列都能够实现。 定义:生产者消费者模式 :生产者生产消息放到队列里,多个消费者同时监听队列…
暂无图片
编程学习 ·

Java教程,Java入门教程,9天快速掌握java基础

Java语言于1995年诞生至今,已经有25年的发展历史,并长期位居编程语言界榜首。行业需求大,薪资待遇高,这些都是Java的优势,那对于初学者来说,怎么样才能更好的入门Java呢?传智播客为此准备了精品视频课程,用9天时间带你快速掌握Java基础。(PS:文末附有课程)本课程将会…
暂无图片
编程学习 ·

Java ssm框架搭建实现登录

Java ssm框架搭建实现登录前言准备新建项目配置TomcatJava文件和resources文件Javaresources建立Package配置文件applicationContext.xmldb.propertiesspring-mvc.xmlUserMapper.xmlcc0701UserUserControllerUserDaoUserServiceUserServiceImplWebfailure.jspok.jspindex.jspw…
暂无图片
编程学习 ·

crontab(定时启动)

crontab:定时任务的守护进程,精确到分,设计秒的我们一般写脚本 -->相当于闹钟日志文件: ll /var/log/cron*编辑文件: vim /etc/crontab 进程:ps -ef | grep crond ==> /etc/init.d/crond restart作用:定时备份,实时备份常见命令参数:usage: crontab [-…
暂无图片
编程学习 ·

App测试中IOS和安卓测试的区别

一、分辨率的测试 安卓端有20多种,IOS相对就比较少一些 二、操作系统的版本 安卓的操作系统比较多,IOS比较少,而且它只能支持单项升级,不能支持降级。 三、操作习惯的一些不同 安卓习惯点击BACK键,所以我们要测试一下BACK键,看看BACK键是否被重写了。点击BACK键之后,看看…
暂无图片
编程学习 ·

第4章 一般概念

一、名称空间std 1.namespace具有可扩展开放性,可发生于任何源码文件上。 2.欲使用C++标准库的任何东西,有三种选择: (1)直接指定标识符。如std::cout (2)使用using declaration。如:using std::cout (3)使用using directive。如using namespace std; 注意:在复杂的…
暂无图片
编程学习 ·

Java 常用算法

算法一:分治法 基本概念 1.把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。 2.分治策略是对于一个规模为n的问题,若该问题可以容易地解决(比如说规模n较小)则直接解…
暂无图片
编程学习 ·

通过小项目学习23种设计模式(四)

通过读取文件导入数据库功能学习23种设计模式 第一次重构代码 目前代码写的很随性,导致以后业务增加时拓展起来繁杂,所以我们将已有逻辑进行第一重构: 抽取公共的行为生成接口 package com.xiaoma.fileimport.common;/*** 任务主执行类* 使用工厂模式,首先将任务共同行为抽象出…
暂无图片
编程学习 ·

Hadoop(七)——中下下

shuffle MapReduce的shuffle分为map阶段的shuffle和reduce阶段的shuffle,下面就分别来做介绍。 map阶段的shuffle: 之前我们学的是map阶段并不是直接把数据给reduce,而是会把数据分好,该分区的分区,该封装的封装,该合并的合并再给到reduce,下面就来详细介绍这个过程。1.…
暂无图片
编程学习 ·

【小甲鱼】零基础入门学习Python(二)函数

function.__doc__function(a = x, b = y) 关键字参数def function(a = x, b = y): 默认值参数def function(*params) 收集参数,可输入多个参数打包为元组函数无return时返回Nonegloble 将局部变量转化为全局变量闭包def FunX(x):def FunY(y):return x * yreturn FunYFunX(8)(5…