[Powered by Google Translate] JORDAN Jóźwiak: odlewanie Type, w najprostszym tego słowa znaczeniu, jest
sposób zmienić komputer interpretacji niektórych danych przez
pośrednio lub bezpośrednio, zmieniając jego typ danych.
Takie jak zmiana int do pływaka, lub odwrotnie.
Aby zrozumieć, rzutowanie typów, musimy
zacząć od podstaw -
rodzaje samych danych.
W językach komputerowych takich jak C, wszystkie zmienne mają jakąś
typu danych, który określa, jak komputer, i podobnie
użytkownika, interpretuje tę zmienną.
Numeryczne typy danych takie jak int, długo, długo, float i
double, wszystkie mają swoje unikalne cechy i są
używane do określania wartości różnych zakresów i precyzji.
Odlewanie Type pozwala nam podejmować liczbę zmiennoprzecinkową jak
3,14 i dostać część przed przecinku, 3 w tym przypadku,
oddając go do int.
Weźmy przykład z języka angielskiego na krótki
przegląd rodzajów, i zobaczyć, jak można zmienić rodzaju odlewu
sposób, w jaki interpretuje fragment danych.
Dla danych, weźmy symbole tutaj.
Ja tylko odnieść się do tych linii, jak starannie skonfigurowanych
symbole, ale jako ktoś, kto zna język angielski,
natychmiast rozpoznać, że są one w rzeczywistości, liter.
Jesteś niejawnie rozumieć typ danych.
Patrząc na ten ciąg liter widzimy dwa
różne słowa, każdy z własnym rozumieniu.
Jest rzecz, wiatr, jak wieje wiatr na zewnątrz.
I jest czasownik, wiatr, jak trzeba
wiatr mój analogowy zegarek.
Jest to ciekawy przykład, bo widzimy
jak typ, który możemy przypisać do naszych danych, czy rzecz lub
czasownik, zmienia sposób wykorzystujemy te dane -
jak wiatr słowo lub wiatr.
Chociaż komputer nie dba o gramatyce i części
angielskiego słowa, sama podstawowa zasada ma zastosowanie.
Oznacza to, że możemy zmienić interpretację dokładny
same dane przechowywane w pamięci, po prostu do odlewania
inny typ.
Oto rozmiary typów najczęściej na 32-bit
system operacyjny.
Mamy char na 1 bajt, int i float na 4 bajtach, długi
długo i dwukrotnie na 8 bajtach.
Bo int zajmuje 4 bajty, to zajmie się 32 bitów
gdy jest przechowywany w pamięci jako binarnego serii
z zer i jedynek.
Tak długo, jak naszej zmiennej pozostaje jako typu int, w
komputer zawsze konwersji tych zer i jedynek z
binary do oryginalnego numeru.
Jednakże, możemy teoretycznie oddać te 32
bitów w serii logicznych typów.
A następnie komputer nie będzie już zobaczyć wiele, ale
zamiast zbiór zer i jedynek.
Możemy również spróbować odczytać, że dane liczbowe różnią
wpisz, lub nawet jako ciąg czterech znaków.
Gdy mamy do czynienia z liczbami w castingu, należy zastanowić się, jak
Precyzyjne wartości zostaną naruszone.
Należy pamiętać, że precyzja może pozostać taka sama,
lub możesz stracić precyzji, ale nigdy nie można uzyskać precyzję.
Przejdźmy przez na trzy sposoby, które można najczęściej
utratę precyzji.
Casting pływaka do int spowoduje obcięcie wszystkiego
po przecinku, więc jesteś w lewo
z liczby całkowitej.
Jeśli weźmiemy x pływak, który będzie równy 3,7, możemy rzucić
ta zmienna x typu int, po prostu pisząc w int
nawiasów.
Zawsze używamy tego terminu tutaj, dowiemy się skutecznie
się przy użyciu wartości trzy bo mamy obcięty
wszystko po przecinku.
Możemy także konwertować długo długo do int, która będzie
Podobnie prowadzi do utraty bitów wyższego rzędu.
Long long zajmuje 8 bajtów lub 64 bitów w pamięci.
Kiedy więc oddać go do int, który ma tylko 4 bajty lub 32
bity, mamy zasadniczo odcięcie wszystkich bitów
stanowią wyższe wartości binarne.
Można też rzucić double do pływaka, który da
Państwu najbliższy możliwy pływak do podwójnego bez
koniecznie zaokrąglenie to.
Podobny do naszego long long int do konwersji, utrata
precyzja, ponieważ zawiera dwukrotnie więcej danych.
Double pozwala na przechowywanie 53 znaczące bity,
około 16 cyfr znaczących.
Mając na uwadze, pływak tylko pozwala na przechowywanie 24
znaczące bity, około siedem cyfr znaczących.
W tych dwóch ostatnich przypadkach, może okazać się pomocne, że z
wpisz odlewania jak zmiana rozmiaru zdjęć.
Kiedy idziesz z dużej wielkości do małych rozmiarów, nie można zobaczyć
rzeczy tak jasno, ponieważ utracone dane
w postaci pikseli.
Odlewania typu może również powodować problemy, gdy
rzucać Ints do pływaków.
Ponieważ unosi się na komputerze 32-bitowym tylko 24
znaczących bitów, nie można dokładnie reprezentują wartości
w ciągu 2 do potęgi 24, czyli 16777217.
Teraz porozmawiajmy o castingu jawnych i ukrytych.
Jawne odlewania jest kiedy piszemy typ w nawiasach
przed nazwą zmiennej.
Jako przykład, zanim napisał int w nawiasie przed naszym
unosić zmiennej x.
W ten sposób otrzymujemy wartość typu int,
obcięty wartość 3,7 -
3.
Niejawny odlewania jest, gdy kompilator automatycznie zmienia
podobne typy do super rodzaju, lub wykonuje inny rodzaj
odlewania bez potrzeby użytkownika pisać
dodatkowego kodu.
Na przykład, gdy dodamy 5 i 1,1, nasze wartości już
typy związane z nimi.
5 jest int, natomiast 1,1 jest float.
Aby je dodać, komputer rzuca 5 do pływaka,
co byłoby samo jak pisanie 5,0 w
pierwsze miejsce.
Ale w ten sposób powiedzieć, pływak 5 lub 5,0, plus to, co było już
float, 1,1, a stamtąd możemy właściwie dodać te
wartości i uzyskać wartość 6,1.
Niejawny odlewania pozwala nam przypisać zmienne
rodzaje siebie.
Zawsze możemy przypisać mniej dokładny typ na więcej
precyzyjny.
Na przykład, jeśli mamy double x, int y oraz -
i mogą mieć żadnych wartości, że stawiamy je do -
możemy powiedzieć, x równa y.
Ponieważ ma dwukrotnie większą dokładność niż int, więc
nie stracić żadnych informacji.
Z drugiej strony, nie zawsze jest poprawne powiedzieć
r wynosi X, ponieważ może się dwukrotnie większą wartość niż
całkowitą.
I tak liczba całkowita nie może być w stanie pomieścić wszystkie
informacje przechowywane w podwójne.
Niejawny odlewania jest również stosowana w operatorów porównania jak
powyżej, poniżej lub operator równości.
W ten sposób możemy powiedzieć, czy 5,1 jest większy niż 5, a otrzymamy
wynikać prawda.
Ponieważ 5 jest int, ale to być oddane do pływaka w celu
można porównać do pływaka 5,1, to mówimy, 5,1 jest
większy niż 5.0.
To samo mówią jeśli 2,0 równa jest równa 2.
Chcemy też dostać prawdziwe, ponieważ komputer będzie rzucać
całkowitą 2 do pływaka, a potem mówią 2,0 równa jest równa 2,0,
to prawda.
Nie zapominajmy, że możemy oddać między wskazówki i znaki,
lub wartości ASCII.
Znaki muszą być również obniżona na binarny, który jest dlaczego
można łatwo przekonwertować między znaków i ich odpowiednie
Wartości ASCII.
Aby dowiedzieć się więcej na ten temat, zapoznaj się z wideo na ASCII.
Kiedy przez chwilę pomyśleć o tym, jak dane jest przechowywany,
zaczyna zarabiać dużo rozsądku.
To tak jak różnica pomiędzy wiatrem i wiatrem.
Dane są takie same, ale mogą zmieniać typ jak
interpretować.
Nazywam się Jordan Jóźwiak, to CS50.