一.代码功能:输入一个十进制整数,将其转化为十六进制整数并输出

二.源码

#include<iostream>
#include<cstring>
#include<cmath>using namespace std;// 十进制数转化为十六进制数步骤如下:
// step1 创建一个整型变量dec,用于接收十进制整数
// step2 创建一个字符串类型变量hex,用于接收转化后的十六进制数
// step3 创建一个余数数组reminder用于接收除16产生的余数
// step4 创建一个整型变量count并初始化为0,用于记录余数个数
// step5 输入dec,若dec<0,取该数绝对值,同时hex+='-',然后进行第6步;若dec为0,0即为最终答案; 若dec>0,直接进行第6步
// step6 当dec!=0,reminder[i]=dec%16,dec/=16,同时余数数组下标i加1,此时若dec>0,count也加1 (这步就是在初始化余数数组)
// step7 遍历余数数组的前count位,将余数数组中的每个数字转化为字符串,并用字符串数组str接收,同 时hex+=str[i](即进行字符串拼接)
// step8 输出hexint main() {int dec = 0; // 十进制数string hex; // 十六进制数,用字符串类型接收,方便后续通过+运算符进行拼接int reminder[100]; // 余数数组int count = 0; // 记录余数个数 int i = 0; // 余数数组下标 // 输入十进制数cout << "请输入一个十进制整数:";cin >> dec;if(dec<0){dec = abs(dec);hex += "-";}else if(dec==0){cout<<"转为十六进制为:"<<0<<endl;exit(0);}// 初始化余数数组 while (dec != 0) {reminder[i] = dec % 16;dec /= 16;i++;if(dec>0){count++;}}string str[100];for (int i = count; i >= 0; i--) {if (reminder[i] >= 10) {switch (reminder[i]) {case 10:str[i] = "A";break;case 11:str[i] = "B";break;case 12:str[i] = "C";break;case 13:str[i] = "D";break;case 14:str[i] = "E";break;case 15:str[i] = "F";break;}}else if (reminder[i] < 10) {str[i] = to_string(reminder[i]);}hex += str[i];}cout<<"转为十六进制为:"<<hex<<endl;return 0;
}

三.注意事项

1.余数数组的长度可以事先指定一个较大的值,反正后面遍历前count位就行;

2.余数数组的遍历就是常见的for循环,但要注意不能写成:for(int i=0;i<count;i++),因为事实上这     里的余数数组是一个栈,要保证后进的先出,所以要写成for(int i=count;i>=0;i--);

3.字符串数组str初始化时写成string str[count]编译器会报错,所以str的长度也可以事先指定一个       较大的值,反正只需要操作其前count位;

4.输入的数记得判断是正/负/0(0直接输出即可),若为负数划归到正数(取绝对值)进行操作;

5.初始化余数数组时,记得判断dec/=16后是否还为正,若为正count才++,否则输出小于16的           十进制数的转化结果时前面会多一个0,例如12->0C;

6.采用字符串类(string)的原因就是它里面有非常多好用的内置函数(例如本题中用到的to_string)以及拼接方便。

十进制整数转为十六进制整数(C++实现)相关推荐

  1. 学习汇编语言-输入十进制数转为十六进制和二进制

    需求分析 十进制接收:依次输入十进制数,运算存储在bx中以回车键结束 转十六进制:依次出栈十进制数,循环左移十进制,al转换十六进制,末尾拼接H 转二进制:利用寄存器除2取余实现末尾拼接B 难点: 十 ...

  2. 十进制数转为十六进制字符串

    面试中经常有相关进制转换的面试题,工作中也涉及到了.比如数据传输的时候就需要转换成16进制,不过那是字符串,我们这里说整型. #include<stdio.h> #include<s ...

  3. java 16进制整数,Java将整数转换为十六进制整数

    I'm trying to convert a number from an integer into an another integer which, if printed in hex, wou ...

  4. 编写程序定义char型变量ch1和ch2值并输入,依次按字符、十进制、八进制和十六进制整数的形式输出它们的值,要求每个变量各占一行

    1-4 字符数据格式化输出 编写程序定义char型变量ch1和ch2值并输入,依次按字符.十进制.八进制和十六进制整数的形式输出它们的值,要求每个变量各占一行 输入格式: 输入两个字符并各占一行. 输 ...

  5. python计算十进制和十六进制之和_计算十进制整数 678 和十六进制整数 0x12fd 之和是...

    [填空题]计算十进制整数 678 和十六进制整数 0x12fd 之和是 . [填空题]物联网是将( )与( )连接起来并进行信息通信的网络. [简答题]C'est un arbre. [单选题]LED ...

  6. 牛客网 CPP55 十进制整数转十六进制字符串

    描述 编写一个函数,传入一个十进制的正整数,将十进制整数转换为十六进制的字符串并返回.(十六进制字符串中的字母全部大写) 输入描述: 键盘输入一个十进制的正整数 输出描述: 输出该十进制整数转换后的十 ...

  7. C语言实例:输出八进制,十进制,十六进制,指定位数整数,带符号整数,科学计数法表示的整数

    C语言实例:输出整数的几种方式 1. 直接输出整数 直接使用printf函数输出整数即可,例如: #include <stdio.h>int main() {int num = 123;p ...

  8. c语言以16进制输出大写字母,C语言二进制、八进制、十六进制整数书写和输出...

    文章目录 一.二进制.八进制.十六进制整数的书写 1.二进制 2.八进制 3.十六进制 4.需要注意的坑 二.二进制.八进制.十六进制整数的输出 三.获取视频教程 四.版权声明 整数是我们生活中常用的 ...

  9. java随堂练习02,求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C

    /***作者:csdn风度翩翩猪肉佬* 日期:2021/4/4* 求一个0~255范围内的整数的十六进制值,例如60的十六进制表示形式3C* */ public class Exer16 {publi ...

最新文章

  1. YOLO v4它来了:接棒者出现,速度效果双提升
  2. mysql查看修改记录_(转)MySql中监视增删改查和查看日志记录
  3. java.exe闪退_tomcat7.exe闪退 解决点击startup.bat后闪退的情况 - 电脑常识 - 服务器之家...
  4. 框架 路由地址_Django框架的使用
  5. 修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全
  6. 微信小程序image组件开发程序以及相关图片问题参考资料汇总
  7. gpu处理信号_GPU显卡不仅用来打游戏那么简单,它还可以用于通用加速计算
  8. java reference 传引用_Java的引用(reference)---Roni
  9. P4981-父子【数学,树】
  10. php mysql导出csv文件_详解PHP导入导出CSV文件
  11. 你可能不知道的 Android Studio 小技巧之「多行编辑」
  12. 双线性对在密码学中的应用(上)
  13. 视频剪辑怎么学?五大经验分享,入门可参考
  14. UniApp 获取屏幕分辨率
  15. Python连接MySQL insert插入语句
  16. 电子元器件贸易采购管理常见难题及解决方案
  17. 基于AM5728 DSP+ARM阵列麦克风解决方案
  18. 3GPP TS 29244-g30 中英文对照 | 5.2.2 Usage Reporting Rule Handling
  19. 全球最大成人网站公布年度榜单!原来lsp最爱看的是这种片……
  20. OmniPlan Pro 3 for Mac v3.12.3 项目规划软件 中文破解版下载

热门文章

  1. 2019年台湾饭店业务盘点
  2. linux jmap命令详解,jmap 详解
  3. 2008r2服务器文件共享设置,windows2008r2共享文件夹设置方法
  4. mysql联合查询数据重复_多表联合查询导致的数据重复问题
  5. 请替费城球迷好好照顾艾弗森
  6. kafka启用Kerberos认证
  7. 十六进制转八进制java_基础练习-十六进制转八进制 -JAVA蓝桥杯
  8. Springboot健身房管理系统毕业设计源码031807
  9. android迷宫生成算法,【Unity算法实现】简单回溯法随机生成 Tile Based 迷宫
  10. 将你的 QQ 头像(或者微博头像)右上角加上红色的数字,类似于微信未读信息数量那种提示效果...