鱼C论坛

 找回密码
 立即注册
查看: 1706|回复: 1

C++

[复制链接]
发表于 2023-11-8 19:31:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用函数实现将一个以字符串形式表示的十六进制数转换为一个十进制整数。例如,输入”A2”转换为162。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-8 19:32:46 | 显示全部楼层
您可以使用以下函数来将一个以字符串形式表示的十六进制数转换为一个十进制整数:

  1. #include <iostream>
  2. #include <string>

  3. int hexToDec(const std::string& hex) {
  4.     int dec = 0;
  5.     int power = 1;

  6.     // 从字符串的最后一个字符开始遍历
  7.     for (int i = hex.length() - 1; i >= 0; i--) {
  8.         char c = hex[ i];

  9.         // 如果字符是数字,则将其转换为对应的十进制数值
  10.         if (isdigit(c)) {
  11.             dec += (c - '0') * power;
  12.         }
  13.         // 如果字符是字母,则将其转换为对应的十进制数值
  14.         else {
  15.             dec += (tolower(c) - 'a' + 10) * power;
  16.         }

  17.         power *= 16; // 更新权重
  18.     }

  19.     return dec;
  20. }

  21. int main() {
  22.     std::string hex = "A2";
  23.     int dec = hexToDec(hex);
  24.     std::cout << "十六进制数 " << hex << " 转换为十进制数为 " << dec << std::endl;

  25.     return 0;
  26. }
复制代码


这个函数使用了一个循环来遍历输入的十六进制字符串。对于每个字符,它首先检查它是否是一个数字。如果是数字,则将其转换为对应的十进制数值并加到结果中。如果字符是一个字母,则将其转换为对应的十进制数值并加到结果中。最后,将权重乘以16,以便处理下一个字符。最后,返回结果即可。

在上面的示例中,我们将字符串"A2"传递给 hexToDec 函数,并将返回的十进制数打印到控制台上。输出将是:

  1. 十六进制数 A2 转换为十进制数为 162
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-22 07:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表