1 00:00:07,632 --> 00:00:10,270 [Powered by Google Translate] JORDAN JOZWIAK:最も単純な意味での型キャストは、ある 2 00:00:10,270 --> 00:00:13,300 でいくつかのデータのコンピュータの解釈を変更する方法 3 00:00:13,300 --> 00:00:16,560 暗黙的または明示的にデータ型を変更する。 4 00:00:16,560 --> 00:00:19,940 float、またはその逆にint型の変更など。 5 00:00:19,940 --> 00:00:21,550 型キャストを理解するために、我々はする必要が 6 00:00:21,550 --> 00:00:22,680 基本から始め - 7 00:00:22,680 --> 00:00:24,140 データ·タイプ自体。 8 00:00:24,140 --> 00:00:26,960 Cのようなコンピュータ言語では、変数はすべていくつかの並べ替えを持って 9 00:00:26,960 --> 00:00:29,690 どのようにコンピュータ、および同様に決定するデータ型の 10 00:00:29,690 --> 00:00:32,140 ユーザは、その変数を解釈します。 11 00:00:32,140 --> 00:00:35,160 は、int、long long型、floatなどの数値データ型と 12 00:00:35,160 --> 00:00:38,110 ダブル、すべての独自の特性を持ち、アール 13 00:00:38,110 --> 00:00:41,370 範囲と精度を変化させる値を指定するために使用。 14 00:00:41,370 --> 00:00:44,800 型キャストは、私たちがどのように浮動小数点数を取ることができます 15 00:00:44,800 --> 00:00:49,170 3.14、この場合には小数点の前の部分、3を取得、 16 00:00:49,170 --> 00:00:51,590 int型にキャストすることによって。 17 00:00:51,590 --> 00:00:53,900 のは、簡単な英語の言語からの例を見てみましょう 18 00:00:53,900 --> 00:00:56,910 種類の見直し、型キャストがいかに変化するかを確認する 19 00:00:56,910 --> 00:00:59,380 我々はデータの一部を解釈する方法。 20 00:00:59,380 --> 00:01:05,269 データについては、のは、ここのシンボルを取ることができます。 21 00:01:05,269 --> 00:01:07,570 私はただ、これらを注意深く設定された回線をご参照ください 22 00:01:07,570 --> 00:01:10,100 シンボルが、英語を知っている誰かのように、 23 00:01:10,100 --> 00:01:12,750 あなたはすぐに、彼らは、実際には、文字であることを認識しています。 24 00:01:12,750 --> 00:01:15,580 あなたは、暗黙的にデータ型を理解していました。 25 00:01:15,580 --> 00:01:17,620 手紙のこの文字列を見て我々は2つ​​を見ることができます 26 00:01:17,620 --> 00:01:20,140 異なる言葉、独自の意味を持つ各。 27 00:01:20,140 --> 00:01:25,530 外で風が吹くのように名詞、風があります。 28 00:01:25,530 --> 00:01:28,280 私がする必要があるようにと動詞、風が、そこ 29 00:01:28,280 --> 00:01:31,410 私のアナログ時計を巻く。 30 00:01:31,410 --> 00:01:33,420 我々が見ることができるので、これは興味深い例である 31 00:01:33,420 --> 00:01:36,270 どのように我々は名詞かどうか、我々のデータに割り当てるタイプ 32 00:01:36,270 --> 00:01:39,080 動詞、我々はそのデータを使用する方法の変更 - 33 00:01:39,080 --> 00:01:41,730 ワード風や風など。 34 00:01:41,730 --> 00:01:44,100 コンピュータは、文法や部品を気にしていませんが 35 00:01:44,100 --> 00:01:47,750 英語のスピーチで、同じ基本的な原則が適用されます。 36 00:01:47,750 --> 00:01:50,290 すなわち、私たちは正確な解釈を変更することができます 37 00:01:50,290 --> 00:01:53,140 単純にキャストすることによって、メモリに格納されている同じデータ 38 00:01:53,140 --> 00:01:54,576 異なるタイプ。 39 00:01:54,576 --> 00:01:57,250 ここでは、最も一般的なタイプのサイズは、32ビットの上にある 40 00:01:57,250 --> 00:01:58,340 オペレーティング·システムに依存します。 41 00:01:58,340 --> 00:02:02,070 我々は、4バイトで1バイト、intとfloat、長期でcharを持っている 42 00:02:02,070 --> 00:02:04,390 長くて8バイトでダブル。 43 00:02:04,390 --> 00:02:07,670 intは4バイトを占有しますので、32ビットを占有します 44 00:02:07,670 --> 00:02:10,060 それは、バイナリ列としてメモリに格納されている場合 45 00:02:10,060 --> 00:02:11,500 0と1の。 46 00:02:11,500 --> 00:02:14,020 私たちの変数は、int型として残っている限り、として 47 00:02:14,020 --> 00:02:16,740 コンピュータは、常にこれらのものとゼロから変換されます 48 00:02:16,740 --> 00:02:19,120 元の数にバイナリ。 49 00:02:19,120 --> 00:02:21,270 しかし、我々は理論的にはそれらの32を唱えられる 50 00:02:21,270 --> 00:02:23,510 Boolean型のシリーズへのビット。 51 00:02:23,510 --> 00:02:26,090 その後、コンピュータは、もはや数を見ないだろうが、 52 00:02:26,090 --> 00:02:28,810 0と1の代わりにコレクション。 53 00:02:28,810 --> 00:02:31,570 また、別の数値としてそのデータを読み取るために試みることができる 54 00:02:31,570 --> 00:02:34,660 入力するか、またはあっても4文字の文字列として。 55 00:02:34,660 --> 00:02:37,820 キャスティングで数字を扱うとき、あなたはどのように考慮する必要があります 56 00:02:37,820 --> 00:02:40,470 あなたの値の精度が影響を受けることになります。 57 00:02:40,470 --> 00:02:43,240 精度は同じ状態を保つことができることに留意して、 58 00:02:43,240 --> 00:02:47,150 またはあなたは精度を失うことはできますが、精度を得ることはできません。 59 00:02:47,150 --> 00:02:49,060 Let 'sは、あなたができる3つの最も一般的な方法を経る 60 00:02:49,060 --> 00:02:50,400 精度を失う。 61 00:02:50,400 --> 00:02:53,060 intにfloatをキャストすると、すべてのものの切り捨てが発生します 62 00:02:53,060 --> 00:02:54,900 小数点の後なので、あなたが残っている 63 00:02:54,900 --> 00:02:55,950 全体の番号を持つ。 64 00:02:55,950 --> 00:03:02,000 我々は3.7に等しくなるフロートxを取るなら、私たちはキャストすることができます 65 00:03:02,000 --> 00:03:05,580 単純にintを書き込むことで、intにこの変数X 66 00:03:05,580 --> 00:03:07,050 括弧。 67 00:03:07,050 --> 00:03:10,010 私たちは右ここにこの用語を使用したときには、我々は効果的によ 68 00:03:10,010 --> 00:03:12,810 私たちは切り捨てられてきたので、値3を使用している可能 69 00:03:12,810 --> 00:03:14,880 小数点以下のすべて。 70 00:03:14,880 --> 00:03:17,210 我々はまた、その意志のint、long long型に変換することができます 71 00:03:17,210 --> 00:03:20,760 同様に上位ビットの喪失につながる。 72 00:03:20,760 --> 00:03:23,910 long longは8バイト、またはメモリ内の64ビットを占有します。 73 00:03:23,910 --> 00:03:27,050 だから我々は唯一の4バイト、または32を有しているint型にキャストしたときに 74 00:03:27,050 --> 00:03:29,820 ビットは、私たちは本質的にすべてのビットをオフにチョッピングアール 75 00:03:29,820 --> 00:03:32,420 高いバイナリ値を表す。 76 00:03:32,420 --> 00:03:34,690 また、与えるフロートにダブルを唱えられる 77 00:03:34,690 --> 00:03:37,340 あなたなしで二重に最も近い可能フロート 78 00:03:37,340 --> 00:03:39,100 必ずしも数値を四捨五入し。 79 00:03:39,100 --> 00:03:41,840 の損失、int型への変換を私たちの長い長いと同様に 80 00:03:41,840 --> 00:03:44,890 二重がより多くのデータが含まれているため、精度である。 81 00:03:44,890 --> 00:03:47,910 ダブルは、あなたが53の最下位ビットを格納することができます 82 00:03:47,910 --> 00:03:50,650 約16桁の有効桁数。 83 00:03:50,650 --> 00:03:53,050 フロートは、あなたが24を格納できるようにするのに対し、 84 00:03:53,050 --> 00:03:56,235 最下位ビット、大体7桁の有効桁数。 85 00:03:56,235 --> 00:03:58,700 これらの最後の2例では、それは考えるとわかりやすいかもしれません 86 00:03:58,700 --> 00:04:01,200 リサイズ写真のようにキャストを入力します。 87 00:04:01,200 --> 00:04:03,860 あなたは大きいサイズから小さいサイズへ行くときには、見ることができない 88 00:04:03,860 --> 00:04:05,600 あなたはデータを失ったものとして明確にあるため 89 00:04:05,600 --> 00:04:07,530 画素の形である。 90 00:04:07,530 --> 00:04:09,270 ときに我々の型キャストはまた、トラブルを引き起こす可能性があります 91 00:04:09,270 --> 00:04:11,050 float型にint型にキャストします。 92 00:04:11,050 --> 00:04:13,920 32ビットマシン上で浮動小数点は24を持っているので 93 00:04:13,920 --> 00:04:16,959 上位ビットは、彼らが正確な値を表すことができません 94 00:04:16,959 --> 00:04:22,750 2オーバー24、または16777217のパワーへ。 95 00:04:22,750 --> 00:04:25,540 今度は、明示的および暗黙的なキャストについてお話ししましょう​​。 96 00:04:25,540 --> 00:04:28,000 我々は括弧内に型を記述するときに明示的なキャストです 97 00:04:28,000 --> 00:04:29,430 変数名の前に。 98 00:04:29,430 --> 00:04:33,100 例として、私達が私達の前に括弧内のintを書く前に 99 00:04:33,100 --> 00:04:35,640 変数xを浮かせる。 100 00:04:35,640 --> 00:04:37,200 この方法では、我々は、int型の値を取得する 101 00:04:37,200 --> 00:04:38,593 3.7の値を切り捨て - 102 00:04:38,593 --> 00:04:40,370 3。 103 00:04:40,370 --> 00:04:42,970 コンパイラが自動的に変更されたときに暗黙的なキャストです 104 00:04:42,970 --> 00:04:46,340 スーパータイプと同様のタイプ、または他のいくつかの並べ替えを実行する 105 00:04:46,340 --> 00:04:48,310 ユーザーが書き込みを必要とせずにキャスティング 106 00:04:48,310 --> 00:04:49,720 余分なコード。 107 00:04:49,720 --> 00:04:53,550 例えば、我々は5と1.1を追加したときに、私たちの価値観は既に持っている 108 00:04:53,550 --> 00:04:55,680 それらに関連付けられた型。 109 00:04:55,680 --> 00:04:59,480 1.1がfloatであるのに対し、5はintです。 110 00:04:59,480 --> 00:05:02,390 それらを追加するために、コンピュータは、floatに5を投げかける 111 00:05:02,390 --> 00:05:04,530 ている5.0の書き込みと同じものだっただろう 112 00:05:04,530 --> 00:05:06,476 最初の場所。 113 00:05:06,476 --> 00:05:13,210 しかし、我々はフロート5、または5.0、プラス何を言うこの方法は、すでにあった 114 00:05:13,210 --> 00:05:16,960 フロート、1.1、そこから私たちは、実際にこれらを追加することができます 115 00:05:16,960 --> 00:05:18,640 値と値の6.1を得る。 116 00:05:21,170 --> 00:05:23,500 暗黙のキャストはまた、私たちはの変数を割り当てることができます 117 00:05:23,500 --> 00:05:25,590 互いに異なる種類。 118 00:05:25,590 --> 00:05:28,110 私たちはいつも以上に少なく正確な型を割り当てることができます。 119 00:05:28,110 --> 00:05:29,250 正確な1。 120 00:05:29,250 --> 00:05:37,060 例えば、私たちは二重のx、およびint yを持っている場合 - 121 00:05:37,060 --> 00:05:40,120 そしてこれらは、我々はそれらを設定した任意の値を持つことができ - 122 00:05:40,120 --> 00:05:43,560 我々は、xがyに等しいと言うことができます。 123 00:05:43,560 --> 00:05:46,340 ダブルは、intよりも高い精度を持っているので、私たち 124 00:05:46,340 --> 00:05:48,380 任意の情報を失うことはありません。 125 00:05:48,380 --> 00:05:50,420 その一方で、それは必ずしも言うことは正しくありません 126 00:05:50,420 --> 00:05:54,060 二重よりも大きい値を持つ可能性があるため、yはXに等しい 127 00:05:54,060 --> 00:05:55,220 整数。 128 00:05:55,220 --> 00:05:57,420 それで、整数はすべて保持できないことがあります 129 00:05:57,420 --> 00:05:59,560 二重に保存されている情報。 130 00:05:59,560 --> 00:06:02,610 暗黙のキャストは以下のような比較演算子でも使用され 131 00:06:02,610 --> 00:06:06,410 より大きい、より少ない、等価演算子。 132 00:06:06,410 --> 00:06:13,050 5.1は5以上であり、我々が得る場合、私たちが言うことができますこの方法 133 00:06:13,050 --> 00:06:14,750 真の結果。 134 00:06:14,750 --> 00:06:18,470 5型はintですが、それはするためにfloatにキャストされますので、 135 00:06:18,470 --> 00:06:22,090 フロート5.1と比較することが、我々は、5.1だと思います 136 00:06:22,090 --> 00:06:24,550 5.0より大きい。 137 00:06:24,550 --> 00:06:31,320 同じことは、2.0は2に等しい場合に等しいと言っても同様である。 138 00:06:31,320 --> 00:06:34,190 コンピュータが唱えますので、我々はまた、真の取得したい 139 00:06:34,190 --> 00:06:39,750 整数2は、フロートしてから2.0が2.0に等しい等しく回答 140 00:06:39,750 --> 00:06:41,660 これは本当です。 141 00:06:41,660 --> 00:06:44,180 、我々はまた、int型と文字の間にキャストできることを忘れないでください 142 00:06:44,180 --> 00:06:46,350 またはASCII値。 143 00:06:46,350 --> 00:06:49,690 charsはまたどうしてですバイナリに還元される必要がある 144 00:06:49,690 --> 00:06:51,920 簡単に文字とそれぞれの間で変換することができます 145 00:06:51,920 --> 00:06:53,260 ASCII値。 146 00:06:53,260 --> 00:06:56,180 この方法の詳細については、ASCIIに私たちのビデオをチェックアウト。 147 00:06:56,180 --> 00:06:58,080 あなたは、データが保存されているかを考えるために時間を取るときは、 148 00:06:58,080 --> 00:06:59,990 それは多くの意味を作り始める。 149 00:06:59,990 --> 00:07:02,790 それはちょうど風と風の違いのようなものだ。 150 00:07:02,790 --> 00:07:05,490 データは同じですが、型がどのように変化するかを、我々 151 00:07:05,490 --> 00:07:06,720 それを解釈する。 152 00:07:06,720 --> 00:07:10,430 私の名前はヨルダンJozwiak、このCS50です。