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

C++ 进制转换

进制转换是一类常见的代码笔试面试问题,在实际的工程应用中,也是一类常需要处理的步骤。

这类问题在笔试中通常考察的是对代码的输入输出相关操作的熟悉程度。考察能否正确读取测试用例,并转换为正确的输出格式,是一类较为基础的问题。

输入输出

C++提供了多种输入输出命令。
在标准命名空间下,常用的输入输出命名为

using namespace std;
cin;//读取数据
cpit;//输出数据
cerr;//输出错误信息到标准错误流
clog;//用于输出日志到标准错误流

一般来说上述命令就已经足够,这对不同问题也可以去找行相应的函数。
我们这里使用getline来读取测试用例。该命令可以从输入流中读取一行字符串。

getline(cin, name)//从标准输入读取一行字符串。

具体实现

我们以16进制转换为10进制作为示例

#include <iostream>
#include <string>
#include <cmath>using namespace std;
class C_HexConverter{
public :int to_decimal(const string &hexStr){int decimal_value=0;//读取字符串,并按照读取的字符转化为十进制数字int len = hexStr.size();for(int i = 0; i < len; i++){char ch = hexStr[i];int digit;if(ch>='0' && ch<='9'){digit = ch - '0';}if(ch >= 'A' && ch <= 'F'){digit = ch - 'A' + 10 ;}if(ch >= 'a' && ch <= 'f'){digit = ch - 'a' + 10 ;}decimal_value += digit*pow(16,len-i-1);}return decimal_value;}};int main() {string s;C_HexConverter hex_converter;while (getline(cin, s)) { // 注意 while 处理多个 caseint decimal_value = hex_converter.to_decimal(s);cout<<decimal_value<<endl;}return 0;
}

其他进制转换为10进制的思路相同。


http://www.mrgr.cn/news/8109.html

相关文章:

  • 做空股指期货一手多少钱?
  • SSRF以及CSRF漏洞初步了解
  • python语言day9 正则表达式 和 xpath 解析html
  • 书生浦语大模型实战营:LMDeploy量化部署
  • centos7.9系统安装cloudpods并使用ceph存储(二)
  • 浅谈Kafka(三)
  • Prompt-Tuning 和 LoRA大模型微调方法区别
  • 【OpenGL】xcode+glfw画三角形
  • 《深入浅出WPF》读书笔记.6binding系统(中)
  • 信息学奥赛知识点(八)----计算机网络
  • web前端之选项卡集合、动态添加类名、动态移除类名、动态添加样式、激活、间距、节流、tabBar
  • 2161.根据给定数字划分数组
  • Outlook如何精确搜索邮件?
  • http应用层协议
  • 高德地图SDK Android版开发 8 覆盖物示例2动画
  • Java核心API——File类
  • 程序员:全栈的痛你不知道
  • Spring Boot 中的 starter 是什么
  • 13.订单页面的展示
  • JVM类加载机制—类加载器和双亲委派机制详解