【解決方法】どうすれば… ASCII を 16 進 C/C++ に変換しますか?

プログラミングQA


SINGLE ASCII を 16 進数に変換する方法はたくさんあります…
これを変換したらどうですか

ASCII ((QString) “42” ~

2 つの 8 ビット ワード「42」?

私が試したこと:

これは私の頭の中にあります…私はこの問題にアプローチする方法がわかりません(そしてここで必要な文字数を埋めるだけです….

解決策 1

簡単: 各アスキー文字の数字を取り、「0」を減算します。これにより、0 から 9 までの値が得られます。

char num[] = "42";
int val = (num[0] - '0') * 10 + (num[1] - '0');

値 42 が返されます。

解決策 2

似たような意味ですか?

C++
#include <iostream>
#include <sstream>
using namespace std;


std::string to_hex(std::string s )
{
  std::ostringstream oss;

  for (auto c: s)
  {
    oss.width(2);
    oss << std::hex << (unsigned int) c;
  }
  return oss.str();
}

int main()
{
  std::string s{"foo"};
  std::cout << s << ", " << to_hex(s) << std::endl;
}

?

コメント

タイトルとURLをコピーしました