C++で大きな16進数を数値文字列に変換する方法


  1. 文字列ストリームを使用する方法:

    #include <iostream>
    #include <sstream>
    std::string hexToNumberString(const std::string& hexNumber) {
    std::stringstream ss;
    ss << std::hex << hexNumber;  // 16進数文字列を数値に変換
    unsigned long long number;
    ss >> number;  // 数値を読み取る
    return std::to_string(number);  // 数値を文字列に変換して返す
    }
    int main() {
    std::string hexNumber = "1F4";  // 大きな16進数
    std::string numberString = hexToNumberString(hexNumber);
    std::cout << "Number string: " << numberString << std::endl;
    return 0;
    }
  2. strtol関数を使用する方法:

    #include <iostream>
    #include <cstdlib>
    std::string hexToNumberString(const std::string& hexNumber) {
    char* end;
    unsigned long long number = std::strtoull(hexNumber.c_str(), &end, 16);
    return std::to_string(number);
    }
    int main() {
    std::string hexNumber = "1F4";  // 大きな16進数
    std::string numberString = hexToNumberString(hexNumber);
    std::cout << "Number string: " << numberString << std::endl;
    return 0;
    }

これらの方法を使用すると、大きな16進数を数値文字列に簡単に変換することができます。ご参考までに、上記のコード例では「1F4」という16進数が数値文字列「500」として変換されます。

以上が、C++で大きな16進数を数値文字列に変換する方法の解説です。この方法を使えば、簡潔かつ効果的に変換することができます。