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

C++ 进制转换

描述

写出一个程序,接受一个十六进制的数,输出该数值的十进制表示。

输入描述:

输入一个十六进制的数值字符串。

输出描述:

输出该数值的十进制字符串。不同组的测试用例用\n隔开。

示例1

输入:0xAA

输出:170

#include <iostream>
#include <string>
#include <cctype>
using namespace std;int main() {std::string str{};cin >> str;if(str.empty() || str.substr(0,2) != "0x"){return 0;}std::string hex = str.substr(2, str.npos);unsigned int sum = 0;unsigned int cur = 0;for(auto h : hex){if(std::isdigit(h)){cur = h - '0'; //字符串到数字转换}else if(h >= 'A' && h <= 'F'){cur = h - 'A' + 10; //字符串到数字转换}sum *= 16;sum += cur;}std::cout << sum <<std::endl;return 0;}//十六进制转换成二进制 无符号整数
unsigned int hex2dec(std::string& str)
{if(str.empty() || str.substr(0,2) != "0x"){return 0;}std::string hex = str.substr(2, str.npos);unsigned int sum = 0;unsigned int cur = 0;for(auto h : hex){if(std::isdigit(h)){cur = h - '0';}else if(h >= 'A' && h <= 'F'){cur = h - 'A' + 10;}sum *= 16;sum += cur;}return sum;
}//二进制转换成十六进制 无符号整数
std::string dec2hex(unsigned int dec)
{std::stack<char> s{};std::string res{"0x"};while(dec){int m = dec % 16;if(m <=9){s.push(m + '0');}else {s.push(m + -10 + 'A');}dec = dec / 16; }while(!s.empty()){res.push_back(s.top());s.pop();}return res;
}/*
C++中自带的进制转换方法:
std::oct 八进制
std::dec 十进制
std::hex 十六进制std::string s{0xFF};
int a; 
std::stringstream ss;
ss<<std::hex<<s; 
ss>>a;        C中自带的进制转换方法:
char* itoa(num, str, m) 将10进制转换成其他进制
int atoi(const char *str) 将字符串转换为整数
printf("%o") 八进制
printf("%d") 十进制
printf("%x") 十六进制
*/

相关文章:

  • Android11 后台启动Activity
  • 组合和外观模式
  • 「C系列」C 结构体
  • ZYNQ7 Processing System IP核中PS侧Uart的用法
  • Java课程设计:基于swing的贪吃蛇小游戏
  • HTML静态网页成品作业(HTML+CSS+JS)—— 美食企业曹氏鸭脖介绍网页(4个页面)
  • 机器学习二分类数据集预处理全流程实战讲解
  • java算法:选择排序
  • Linux之网络编程
  • JAVA系列---函数式接口
  • 图像的几何变换之平移
  • 【数据挖掘-思考】分类和聚类
  • Java基础面试重点-1
  • 【java计算机专业毕设】月度员工绩效考核管理系统java MySQL springboot vue maven代码源码 送文档
  • Opus从入门到精通(四)Opus解码程序实现
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Android开源项目规范总结
  • CentOS从零开始部署Nodejs项目
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • Java面向对象及其三大特征
  • linux安装openssl、swoole等扩展的具体步骤
  • PHP 7 修改了什么呢 -- 2
  • Python_网络编程
  • React-Native - 收藏集 - 掘金
  • SpringBoot 实战 (三) | 配置文件详解
  • vue-cli在webpack的配置文件探究
  • 闭包,sync使用细节
  • 第十八天-企业应用架构模式-基本模式
  • 前端设计模式
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • - 转 Ext2.0 form使用实例
  • ​iOS安全加固方法及实现
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (C++17) std算法之执行策略 execution
  • (C语言)字符分类函数
  • (day6) 319. 灯泡开关
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (顶刊)一个基于分类代理模型的超多目标优化算法
  • (二)延时任务篇——通过redis的key监听,实现延迟任务实战
  • (数据结构)顺序表的定义
  • (轉貼) 資訊相關科系畢業的學生,未來會是什麼樣子?(Misc)
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .net 托管代码与非托管代码
  • .NET 中创建支持集合初始化器的类型
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .netcore如何运行环境安装到Linux服务器
  • .NetCore项目nginx发布
  • .NET多线程执行函数