C++ 十六进制到八进制转换:破解古老宝箱的密码
破解古老宝箱的密码:将十六进制转换为八进制
你发现了一个神秘的古老宝箱,上面刻着十六进制编码的密码!幸运的是,你是一名优秀的程序员,掌握着将十六进制转换为八进制的技巧。本文将带你一步步破解宝箱密码。
问题描述
宝箱上有一行神秘的十六进制数字,但无法直接读取它。你需要编写一个 C++ 程序,将这个十六进制数字转换为八进制数字,以找到正确的密码。
输入描述
一个十六进制数,以字符串形式给出。该字符串只包含数字、点('.') 和字母(A-F),字母只包含大写。
输出描述
输出一行,表示对应的八进制数,以字符串形式给出。
示例
输入
1A
输出
32
输入
8.1
输出
10.04
解决方案
你可以使用 C++ 中的标准库函数stoi和to_string来实现十六进制到八进制的转换。
- 将十六进制字符串转换为整数: 使用
std::stoi(hexStr, 0, 16),其中hexStr是输入的十六进制字符串,16表示十六进制。 - 将整数转换为八进制字符串: 使用
std::to_string(decNum),其中decNum是第一步得到的整数。
代码示例
#include <iostream>
#include <string>
std::string hexToOct(std::string hexStr) {
// 将十六进制字符串转换为整数
int decNum = std::stoi(hexStr, 0, 16);
// 将整数转换为八进制字符串
std::string octStr = std::to_string(decNum);
return octStr;
}
int main() {
std::string hexStr;
std::cin >> hexStr;
std::string octStr = hexToOct(hexStr);
std::cout << octStr << std::endl;
return 0;
}
代码解析
hexToOct函数接受一个十六进制字符串作为输入,并返回对应的八进制字符串。main函数从标准输入中读取一个十六进制字符串,并将其传递给hexToOct函数进行转换。最后,将得到的八进制字符串输出到标准输出中。
测试你的代码
你可以使用示例输入测试你的代码,并根据需要进行修改。祝你顺利破解宝箱密码!
原文地址: https://www.cveoy.top/t/topic/nP2T 著作权归作者所有。请勿转载和采集!