ホームページ > バックエンド開発 > C++ > C で Char から '0' を引くと数値が返されるのはなぜですか?

C で Char から '0' を引くと数値が返されるのはなぜですか?

Linda Hamilton
リリース: 2024-12-14 12:32:11
オリジナル
653 人が閲覧しました

Why Does Subtracting '0' from a Char in C Return Its Numerical Value?

C の Char から '0' を引くと、その数値が返されます

文字列から '0' を引くと、 ASCII 文字コードは、それによって表される数値になります。 Character.

ASCII エンコーディングについて

これが機能する理由を理解するには、ASCII エンコーディングについて知ることが重要です。 ASCII は、各文字に 0 ~ 127 の範囲の一意の数値を割り当てます。文字に対応する数値は、その ASCII コードとして知られています。

たとえば、文字「0」の ASCII コードは 48、 「1」の ASCII コードは 49 などです。これは、文字「0」から「9」が 48 から 57 の範囲の ASCII コードを持つことを意味します。

文字の数値表現

「0」を減算する理由文字コードから数値を返すのは、数字「0」から「9」までのASCIIコードが連続しているためです。これらのコードのいずれかから '0' を減算すると、シーケンスから数字のオフセットが削除され、実際の数値だけが残ります。

たとえば、'9' (ASCII コード 57) から '0' を減算すると 9 が得られます。 57 - 48 = から9.

次のコードを考えてみましょう。

char c = '9';
int x = (int)(c - '0');
ログイン後にコピー

ここでは、文字 '9' が変数 c に格納されています。 (int) を使用して c と '0' の差を整数にキャストすると、数値 '9' (9) が変数 x に代入されます。

結論

結論として、ASCII コードは数字を表すため、C の文字の ASCII コードから「0」を引くと、その文字が表す数値が得られます。 「0」から「9」は連続しており、数値を直接表します。

以上がC で Char から '0' を引くと数値が返されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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