ホームページ > バックエンド開発 > C++ > C で整数を 16 進文字列に効率的に変換するにはどうすればよいですか?

C で整数を 16 進文字列に効率的に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2025-01-01 07:51:10
オリジナル
631 人が閲覧しました

How Can I Efficiently Convert Integers to Hexadecimal Strings in C  ?

C での整数の 16 進文字列への変換

C での整数の 16 進文字列への変換は、その単純さにもかかわらず、開発者にとって課題となる可能性があります。 C とは異なり、C にはこの変換のためのネイティブ メソッドがありません。

ただし、 の機能を活用できます。このタスクを達成するためのライブラリ。 std::hex マニピュレータは、このプロセスで重要な役割を果たします。これを出力ストリームに挿入すると、整数を 16 進形式で出力できます。

std::cout << std::hex << your_int;
ログイン後にコピー

後で使用するために整数の 16 進文字列表現をキャプチャするには、std::stringstream オブジェクトの使用を検討してください。

std::stringstream stream;
stream << std::hex << your_int;
std::string result(stream.str());
ログイン後にコピー

上記の例では、最初の << に 0x プレフィックスを追加できます。

注目すべき追加のマニピュレータには、std::oct (8 進数) および std::dec (10 進数) が含まれます。

ただし、std::hex マニピュレータはデフォルトで文字列を生成します。必要な数の 16 進数のみを含む表現。特定の幅が必要な場合は、std::setfill と std::setw を使用できます。

stream << std::setfill('0') << std::setw(sizeof(your_type) * 2)
       << std::hex << your_int;
ログイン後にコピー

最後に、整数から 16 進数への変換を処理する汎用関数を定義できます。

template< typename T >
std::string int_to_hex( T i )
{
  std::stringstream stream;
  stream << "0x"
         << std::setfill ('0') << std::setw(sizeof(T)*2)
         << std::hex << i;
  return stream.str();
}

以上がC で整数を 16 進文字列に効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート