[Powered by Google Translate] Jordan Jozwiak: fundición Tipo, no sentido máis simple, é unha
xeito para cambiar a interpretación de un ordenador uns datos
implícita ou explicitamente, cambiando o seu tipo de datos.
Como cambiar un int a un float, ou viceversa.
Para entender tipo de escape, é preciso
comezar co básico -
tipos de datos propios.
En linguaxes como C, todas as variables teñen algún tipo
do tipo de datos que determina como o ordenador, e do mesmo xeito
o usuario, que interpreta variable.
Numéricos tipos de datos, tales como un int, longo tempo float, e
dobre, todos teñen as súas propias características únicas e son
usado para indicar valores cos máis variados e de precisión.
Tipo de escape nos permite ter un número de punto flotante como
3,14 e obter a peza antes do decimal, 3, neste caso,
, Lanzándose a un int.
Imos dar un exemplo do idioma inglés para un breve
revisión de tipos, e para ver como tipo de escape pode cambiar
a nosa forma de interpretar unha parte dos datos.
Para os datos, imos dar os símbolos aquí.
Eu só referirse a esas liñas coidadosamente configurados como
símbolos, pero como alguén que coñece o idioma inglés,
vostede inmediatamente recoñecer que son, de feito, as letras.
Vostede implicitamente comprendido o tipo de datos.
Mirando para esta secuencia de letras, podemos ver dous
palabras distintas, cada un co seu propio significado.
Non hai o substantivo, o vento, como o vento sopra no exterior.
E hai o verbo, o vento, como no que eu teño
enrolar meu reloxo analóxico.
Este é un exemplo interesante, porque podemos ver
como o tipo que atribuímos aos nosos datos, se substantivo ou
verbais, cambia o xeito no que usan eses datos -
como o vento palabra ou vento.
A pesar de un ordenador non se preocupa gramática e pezas
de fala inglés, o mesmo principio básico aplicable.
É dicir, podemos cambiar a interpretación do exacto
mesmos datos almacenados na memoria simplemente convertela lo a un
tipo.
Aquí están os tamaños dos tipos máis comúns nun 32 bits
sistema operativo.
Temos un char menos 1 byte int e float de 4 bytes, un longo
de lonxitude e unha dobre de 8 bytes.
Porque un int ocupa 4 bytes, vai levar ata 32 bits
cando é almacenado na memoria como unha serie binaria
de ceros e uns.
Mentres que a nosa variable permanece como un tipo int, o
ordenador sempre converter os uns e ceros de
binario para o número orixinal.
Con todo, teoricamente podería lanzar os 32
bits nunha serie de tipos booleanos.
E entón o ordenador non verá máis un número, pero
vez, unha colección de ceros e uns.
Tamén pode tentar ler estes datos como un número diferente
tipo, ou mesmo como unha secuencia de catro caracteres.
Ao tratar con números casting, ten que considerar como
a precisión do seu valor será afectada.
Teña presente que a precisión pode permanecer o mesmo,
ou pode perder precisión, pero nunca pode gañar precisión.
Imos pasar as tres formas máis comúns que pode
perder precisión.
Lanzando un float para un int causará truncamento de todo
despois do punto decimal, entón queda
co número enteiro.
Se tomamos o X boia que será igual a 3,7, pódese lanzar
esta variable x para un int, pode escribir en int
parénteses.
Sempre que usamos este termo aquí, nós imos efectivamente
estar usando o valor de tres, porque truncado
todo despois do punto decimal.
Tamén podemos converter un longo tempo para un int, que será
Similarmente levar a unha perda de bits de orde superior.
Un longo tempo ocupa 8 bytes, ou 64 bits na memoria.
Entón, cando nós lanza-lo para un int que só ten 4 bytes, ou 32
bits, que son, esencialmente, cortando todos os bits que
representan os valores máis elevados binarios.
Tamén pode lanzar un dobre para un float, que vai dar
vostede flotar o máis próximo posible do dobre sen
necesariamente redondeo lo.
Semellante ao noso longo tempo de conversión int, a perda de
precisión é porque un dobre contén máis datos.
O dúo permitirá que almacene 53 bits significativos,
preto de 16 díxitos significativos.
Considerando unha boia só permiten almacenar 24
bits significativos, arredor de sete díxitos significativos.
Nestes dous últimos casos, pode ser útil para pensar
escriba elenco como redimensionar unha foto.
Cando vai dun tamaño grande para un tamaño pequeno, non pode ver
cousas tan claramente, porque perdeu datos
baixo a forma de píxeles.
Tipo de escape tamén pode causar problemas cando
ints para lanzar coches alegóricos.
Dende que flutúa nunha máquina de 32 bits só ten 24
bits significativos, non poden representar precisamente valores
ao longo de 2 a potencia de 24 ou 16777217.
Agora imos falar sobre o reparto explícito e implícito.
Conversión explícita é cando escribimos tipo entre parénteses
antes dun nome de variable.
Como exemplo, antes que escribiu int entre parénteses antes da nosa
flotar variable x.
Deste xeito, obtemos o valor int, o
valor truncado de 3,7 -
3.
A conversión implícita é cando o compilador cambia automaticamente
tipos semellantes ás dun tipo super, ou exercer algún outro tipo de
lanzando sen esixir que o usuario escriba
un código adicional.
Por exemplo, cando engadir 5 e 1,1, os nosos valores xa
tipo asociados a eles.
O 5 é un int, mentres 1,1 é un flotante.
A fin de engadila los, o ordenador lanza 5 nunha boia,
que sería o mesmo que escribindo 5.0 na
primeiro lugar.
Pero esta forma de dicir flotador 5 ou 5,0, máis o que xa era
unha boia, 1.1, e de alí podemos realmente engadir estes
valores e obter o valor 6.1.
A conversión implícita tamén nos permite asignar variables de
tipos diferentes uns dos outros.
Sempre podemos asignar un tipo menos que nun máis
un preciso.
Por exemplo, se temos un dobre x, y e un int -
e estes poderían ter os valores que establecemos que -
podemos dicir x é igual a y.
Porque a parella ten máis precisión que un int, entón nós
non vai perder ningunha información.
Por outra banda, non sería necesariamente correcto afirmar
y é igual a x, como a dobre pode ter un valor maior que
o número enteiro.
E así, o número enteiro pode non ser capaz de realizar todos os
informacións almacenadas na dobre.
A conversión implícita tamén é usado en operadores de comparación como
maior que, menor que, ou o operador de igualdade.
Desta forma, podemos dicir que se 5,1 é maior que 5, e temos a
resultado real.
Porque 5 é un int, pero vai ser convertido para un flotador, a fin de
ser comparado co flotador 5.1, diriamos 5.1 é
maior que 5,0.
O mesmo é certo en dicir se é igual a 2,0 é igual a 2.
Tamén obter verdade, pois o ordenador vai lanzar o
enteiro de 2 a flotar e entón dicir 2,0 equivale a 2,0 é o mesmo,
iso é verdade.
Non esqueza que tamén pode lanzar entre ints e chars,
ou valores ASCII.
Chars tamén debe ser reducido a binario, que é por iso que
pode converterse facilmente entre chars e os seus respectivos
Valores ASCII.
Para saber máis sobre iso, confía noso vídeo en ASCII.
Cando toma un momento para pensar sobre como os datos están almacenados,
comeza a facer moito sentido.
É como a diferenza entre o vento eo vento.
Os datos son os mesmos, pero o tipo pode cambiar o xeito no que
interpretala lo.
O meu nome é Jordan Jozwiak, este CS50.