[Powered by Google Translate] JORDAN JOZWIAK：最も単純な意味での型キャストは、ある
でいくつかのデータのコンピュータの解釈を変更する方法
暗黙的または明示的にデータ型を変更する。
float、またはその逆にint型の変更など。
型キャストを理解するために、我々はする必要が
基本から始め -
データ·タイプ自体。
Cのようなコンピュータ言語では、変数はすべていくつかの並べ替えを持って
どのようにコンピュータ、および同様に決定するデータ型の
ユーザは、その変数を解釈します。
は、int、long long型、floatなどの数値データ型と
ダブル、すべての独自の特性を持ち、アール
範囲と精度を変化させる値を指定するために使用。
型キャストは、私たちがどのように浮動小数点数を取ることができます
3.14、この場合には小数点の前の部分、3を取得、
int型にキャストすることによって。
のは、簡単な英語の言語からの例を見てみましょう
種類の見直し、型キャストがいかに変化するかを確認する
我々はデータの一部を解釈する方法。
データについては、のは、ここのシンボルを取ることができます。
私はただ、これらを注意深く設定された回線をご参照ください
シンボルが、英語を知っている誰かのように、
あなたはすぐに、彼らは、実際には、文字であることを認識しています。
あなたは、暗黙的にデータ型を理解していました。
手紙のこの文字列を見て我々は2つ​​を見ることができます
異なる言葉、独自の意味を持つ各。
外で風が吹くのように名詞、風があります。
私がする必要があるようにと動詞、風が、そこ
私のアナログ時計を巻く。
我々が見ることができるので、これは興味深い例である
どのように我々は名詞かどうか、我々のデータに割り当てるタイプ
動詞、我々はそのデータを使用する方法の変更 -
ワード風や風など。
コンピュータは、文法や部品を気にしていませんが
英語のスピーチで、同じ基本的な原則が適用されます。
すなわち、私たちは正確な解釈を変更することができます
単純にキャストすることによって、メモリに格納されている同じデータ
異なるタイプ。
ここでは、最も一般的なタイプのサイズは、32ビットの上にある
オペレーティング·システムに依存します。
我々は、4バイトで1バイト、intとfloat、長期でcharを持っている
長くて8バイトでダブル。
intは4バイトを占有しますので、32ビットを占有します
それは、バイナリ列としてメモリに格納されている場合
0と1の。
私たちの変数は、int型として残っている限り、として
コンピュータは、常にこれらのものとゼロから変換されます
元の数にバイナリ。
しかし、我々は理論的にはそれらの32を唱えられる
Boolean型のシリーズへのビット。
その後、コンピュータは、もはや数を見ないだろうが、
0と1の代わりにコレクション。
また、別の数値としてそのデータを読み取るために試みることができる
入力するか、またはあっても4文字の文字列として。
キャスティングで数字を扱うとき、あなたはどのように考慮する必要があります
あなたの値の精度が影響を受けることになります。
精度は同じ状態を保つことができることに留意して、
またはあなたは精度を失うことはできますが、精度を得ることはできません。
Let 'sは、あなたができる3つの最も一般的な方法を経る
精度を失う。
intにfloatをキャストすると、すべてのものの切り捨てが発生します
小数点の後なので、あなたが残っている
全体の番号を持つ。
我々は3.7に等しくなるフロートxを取るなら、私たちはキャストすることができます
単純にintを書き込むことで、intにこの変数X
括弧。
私たちは右ここにこの用語を使用したときには、我々は効果的によ
私たちは切り捨てられてきたので、値3を使用している可能
小数点以下のすべて。
我々はまた、その意志のint、long long型に変換することができます
同様に上位ビットの喪失につながる。
long longは8バイト、またはメモリ内の64ビットを占有します。
だから我々は唯一の4バイト、または32を有しているint型にキャストしたときに
ビットは、私たちは本質的にすべてのビットをオフにチョッピングアール
高いバイナリ値を表す。
また、与えるフロートにダブルを唱えられる
あなたなしで二重に最も近い可能フロート
必ずしも数値を四捨五入し。
の損失、int型への変換を私たちの長い長いと同様に
二重がより多くのデータが含まれているため、精度である。
ダブルは、あなたが53の最下位ビットを格納することができます
約16桁の有効桁数。
フロートは、あなたが24を格納できるようにするのに対し、
最下位ビット、大体7桁の有効桁数。
これらの最後の2例では、それは考えるとわかりやすいかもしれません
リサイズ写真のようにキャストを入力します。
あなたは大きいサイズから小さいサイズへ行くときには、見ることができない
あなたはデータを失ったものとして明確にあるため
画素の形である。
ときに我々の型キャストはまた、トラブルを引き起こす可能性があります
float型にint型にキャストします。
32ビットマシン上で浮動小数点は24を持っているので
上位ビットは、彼らが正確な値を表すことができません
2オーバー24、または16777217のパワーへ。
今度は、明示的および暗黙的なキャストについてお話ししましょう​​。
我々は括弧内に型を記述するときに明示的なキャストです
変数名の前に。
例として、私達が私達の前に括弧内のintを書く前に
変数xを浮かせる。
この方法では、我々は、int型の値を取得する
3.7の値を切り捨て -
3。
コンパイラが自動的に変更されたときに暗黙的なキャストです
スーパータイプと同様のタイプ、または他のいくつかの並べ替えを実行する
ユーザーが書き込みを必要とせずにキャスティング
余分なコード。
例えば、我々は5と1.1を追加したときに、私たちの価値観は既に持っている
それらに関連付けられた型。
1.1がfloatであるのに対し、5はintです。
それらを追加するために、コンピュータは、floatに5を投げかける
ている5.0の書き込みと同じものだっただろう
最初の場所。
しかし、我々はフロート5、または5.0、プラス何を言うこの方法は、すでにあった
フロート、1.1、そこから私たちは、実際にこれらを追加することができます
値と値の6.1を得る。
暗黙のキャストはまた、私たちはの変数を割り当てることができます
互いに異なる種類。
私たちはいつも以上に少なく正確な型を割り当てることができます。
正確な1。
例えば、私たちは二重のx、およびint yを持っている場合 -
そしてこれらは、我々はそれらを設定した任意の値を持つことができ -
我々は、xがyに等しいと言うことができます。
ダブルは、intよりも高い精度を持っているので、私たち
任意の情報を失うことはありません。
その一方で、それは必ずしも言うことは正しくありません
二重よりも大きい値を持つ可能性があるため、yはXに等しい
整数。
それで、整数はすべて保持できないことがあります
二重に保存されている情報。
暗黙のキャストは以下のような比較演算子でも使用され
より大きい、より少ない、等価演算子。
5.1は5以上であり、我々が得る場合、私たちが言うことができますこの方法
真の結果。
5型はintですが、それはするためにfloatにキャストされますので、
フロート5.1と比較することが、我々は、5.1だと思います
5.0より大きい。
同じことは、2.0は2に等しい場合に等しいと言っても同様である。
コンピュータが唱えますので、我々はまた、真の取得したい
整数2は、フロートしてから2.0が2.0に等しい等しく回答
これは本当です。
、我々はまた、int型と文字の間にキャストできることを忘れないでください
またはASCII値。
charsはまたどうしてですバイナリに還元される必要がある
簡単に文字とそれぞれの間で変換することができます
ASCII値。
この方法の詳細については、ASCIIに私たちのビデオをチェックアウト。
あなたは、データが保存されているかを考えるために時間を取るときは、
それは多くの意味を作り始める。
それはちょうど風と風の違いのようなものだ。
データは同じですが、型がどのように変化するかを、我々
それを解釈する。
私の名前はヨルダンJozwiak、このCS50です。