C言語のデータ型変換方法

藏色散人
藏色散人オリジナル
2020-02-26 09:30:568824ブラウズ

C言語のデータ型変換方法

#C言語のデータ型変換方法

データ型変換とは、データ(変数、値、式の結果)を変換することです。 、など)あるタイプから別のタイプへ。

自動型変換

自動型変換は、コンパイラによってサイレント、暗黙的、秘密裏に実行されるデータ型変換です。この変換にはプログラマの介入は必要ありません。自動的に起こります。

1) ある型のデータが別の型の変数に代入されると、自動型変換が行われます。例:

float f = 100;

100 は int 型データなので、float 型のみに変換する必要があります変数 f に代入できます。別の例:

int n = f;

f は float 型のデータであり、変数 n に割り当てる前に int 型に変換する必要があります。

代入演算において、代入番号の両側のデータ型が異なる場合、右側の式の型を左側の変数の型に変換する必要があり、データの歪みや精度の低下があるため、自動入力変換は必ずしも安全であるとは限りません。コンパイラは通常、安全でない型変換に対して警告を出します。

2) 異なる型の混合演算では、コンパイラはデータ型も自動的に変換し、まず演算に関係するすべてのデータを同じ型に変換してから計算を実行します。変換規則は以下のとおりです。

値が崩れたり、精度が低下したりしないように、データ長が長くなる方向に変換します。例えば、intとlongの演算を行う場合、int型のデータをlong型に変換してから演算を行います。

浮動小数点演算はすべて倍精度で行われるため、float 型しかない場合でも double 型に変換してから演算を行う必要があります。

char と short が演算に関与する場合、最初にそれらを int 型に変換する必要があります。

次の図は、この変換ルールをより明確に示しています:

unsigned は unsigned int でもあります。このとき、int を省略して、単に unsigned と記述することもできます。

自動型変換例:

#include<stdio.h>
int main(){
    float PI = 3.14159;
    int s1, r = 5;
    double s2;
    s1 = r * r * PI;
    s2 = r * r * PI;
    printf("s1=%d, s2=%f\n", s1, s2);
    return 0;
}

実行結果:

s1=78, s2=78.539749

式 r*r*PI を計算すると、r と PI の両方が double 型に変換され、次のように表現されます。式の結果も double 型になります。ただし、s1 は整数であるため、代入演算の結果も整数のままで、小数部分が切り捨てられ、データの歪みが発生します。

プログラミング関連のコンテンツの詳細については、php 中国語 Web サイトの

プログラミング入門 列に注目してください。

以上がC言語のデータ型変換方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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