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

文字列を使用せずに文字の数字を整数に効率的に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-10 22:20:15353ブラウズ

How Can I Efficiently Convert a Character Digit to an Integer without Using Strings?

文字列仲介を使用せずに Char を Int に変換する

プログラマは、多くの場合、文字列から数値を抽出して利用するというタスクに直面します。計算。インデックスを使用して個々の文字にアクセスするのは簡単ですが、これらの文字を整数に変換するにはどうすればよいでしょうか?

従来のアプローチでは、文字列を引数として受け取る atoi() 関数を使用します。ただし、これには最初に各文字を文字列に変換する必要があります。より効率的な方法はありますか?

文字エンコーディングの利用

答えは、数字の文字エンコーディングが 48 (' の場合) の範囲で連続しているという事実を利用することにあります。 0') ~ 57 ('9')。この一貫性は、ASCII、UTF-x、その他ほとんどのエンコーディングを含むさまざまなエンコーディングにわたって維持されます。

したがって、数字文字に相当する整数は、単に文字から '0' を引いたもの、つまり 48 になります。

次のコード スニペットを考えてみましょう:

char c = '1';
int i = c - '0'; // i is now equal to 1, not '1'

このコードは、整数値 1 を変数 i に割り当てます。あるいは、次のコード スニペットでも同じ結果が得られます。

char c = '1';
int i = c - 48; // i is now equal to 1, not '1'

どちらの方法でも望ましい結果が得られますが、「0」からの減算の方が読みやすく効率的であると考えられます。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。