[Powered by Google Translate] JORDAN Jozwiak: conversión de tipos, en el sentido más simple, es un
manera de alterar la interpretación de una computadora de algunos datos por
implícita o explícitamente cambiando su tipo de datos.
Tal como cambiar un int a un float, o viceversa.
Para entender la conversión de tipos, tenemos que
empezar con lo básico -
mismos tipos de datos.
En los lenguajes de programación como C, todas las variables tienen algún tipo
de tipo de datos que determina cómo el ordenador, incluso
el usuario, interpreta esa variable.
Tipos de datos numéricos, como un int, long long, float y
dobles, todas ellas tienen sus propias características y son
utiliza para especificar los valores de diferentes rangos y precisión.
Forzado de tipos nos permite tener un número de punto flotante como
3.14 y obtener la parte antes del decimal, 3 en este caso,
echando a un int.
Tomemos un ejemplo del idioma Inglés por un breve
la revisión de los tipos, y para ver cómo la conversión de tipos puede cambiar
la forma en que interpretamos una pieza de datos.
Para los datos, vamos a tomar los símbolos aquí.
Acabo de hacer referencia a estas líneas cuidadosamente configurados como
símbolos, sino como alguien que conoce el idioma Inglés,
inmediatamente reconocen que son, de hecho, las letras.
Usted entiende implícita del tipo de datos.
En cuanto a esta cadena de letras que podemos ver a dos
palabras diferentes, cada uno con su propio significado.
Ahí está el sustantivo, el viento, al igual que en el viento de afuera.
Y ahí está el verbo, el viento, como en lo que
cuerda a mi reloj analógico.
Este es un ejemplo interesante, ya que podemos ver
cómo el tipo que le asignamos a nuestros datos, ya sea sustantivo o
verbales, cambia la forma en que utilizamos los datos -
como el viento o el viento palabra.
Aunque un equipo no se preocupa acerca de la gramática y las piezas
de habla Inglés, el mismo principio se aplica.
Es decir, se puede cambiar la interpretación de la exacta
mismos datos almacenados en la memoria por simple colada a una
tipo diferente.
Aquí son los tamaños de los tipos más comunes de un 32-bit
del sistema operativo.
Tenemos un char a 1 byte, int y float en 4 bytes, una larga
de largo y un doble de 8 bytes.
Debido a que un int ocupa 4 bytes, se tardará hasta 32 bits
cuando se almacena en la memoria como una serie binaria
de ceros y unos.
Mientras nuestra variable permanece como un tipo int, el
equipo siempre va a convertir esos unos y ceros de
binario en el número original.
Sin embargo, en teoría podría arrojar los 32
bits en una serie de tipos booleanos.
Y luego el ordenador ya no ve un número, pero
en lugar de un conjunto de ceros y unos.
También puede tratar de leer esos datos como diferente numérico
escribir, o incluso como una cadena de cuatro caracteres.
Cuando se trata de números en casting, debe considerar cómo
la precisión de su valor se verá afectado.
Tenga en cuenta que la precisión puede permanecer igual,
o puedes perder precisión, pero nunca se puede ganar precisión.
Vamos a través de las tres formas más comunes que se pueden
perder precisión.
Al lanzar un flotador a un int hará que el truncamiento de todo
después del punto decimal, por lo que está a la izquierda
con el número entero.
Si tomamos el flotador que x será igual a 3,7, podemos echar
esta variable x a un int simplemente escribiendo int en
paréntesis.
Cada vez que usamos este término aquí, que efectivamente va a
a utilizar el valor de tres, ya que hemos truncado
todo después del punto decimal.
También puede convertir un long long a int, que será
igualmente conducir a una pérdida de bits de alto orden.
A long long ocupa 8 bytes o 64 bits en la memoria.
Así que cuando la echó a un int que sólo tiene 4 bytes, o 32
bits, esencialmente estamos cortando todos los bits que
representan los valores binarios más altos.
También puede lanzar un doble a un flotador, que dará
que el flotador más cercano posible al doble sin
necesariamente redondeo.
Similar a nuestro long long int a la conversión, la pérdida de
precisión se debe a que un doble contiene más datos.
Un doble le permitirá almacenar 53 bits de menor peso,
aproximadamente 16 dígitos significativos.
Mientras que un flotador sólo le permitirá almacenar 24
bits de menor peso, aproximadamente siete dígitos significativos.
En estos dos últimos casos, puede ser útil pensar
conversión de tipos como cambiar el tamaño de una foto.
Cuando se pasa de un gran tamaño a un tamaño pequeño, no se puede ver
las cosas con tanta claridad, porque la pérdida de datos
en forma de píxeles.
Forzado de tipos también pueden causar problemas cuando
emitir ints a flote.
Dado que flota en una máquina de 32 bits sólo tienen 24
bits significativos, no pueden representar con precisión los valores
más de 2 a la potencia de 24, o 16777217.
Ahora vamos a hablar de una conversión explícita e implícita.
Una conversión explícita es cuando se escribe entre paréntesis el tipo
antes de un nombre de variable.
Por ejemplo, antes de escribir int entre paréntesis antes de nuestra
flotar variable x.
De esta manera, obtenemos el valor int, el
valor truncado de 3,7 -
3.
Conversión implícita es cuando el compilador cambia automáticamente
tipos similares a un tipo de super, o realiza alguna otra clase de
de colada sin necesidad de que el usuario escriba
cualquier código adicional.
Por ejemplo, cuando sumamos 5 y 1,1, nuestros valores ya tienen
tipos asociados con ellos.
El 5 es un int, mientras que 1.1 es una carroza.
Con el fin de añadirlos, el ordenador pone en un flotador 5,
lo que habría sido la misma cosa que escribir en el 5,0
primer lugar.
Pero de esta manera decimos flotador 5 o 5,0, además de lo que ya era
un flotador, 1,1, y de allí en realidad podemos añadir estos
valores y obtener el valor 6,1.
Conversión implícita también nos permite asignar variables de
tipos diferentes entre sí.
Siempre podemos asignar un tipo menos precisa en una más
un preciso.
Por ejemplo, si tenemos una doble x, y una y int -
y que éstas podrían tener cualquier valor que las asignamos al -
podemos decir que x es igual a y.
Debido a que el matrimonio tiene más precisión que un int, por lo que
no perderá ninguna información.
Por otra parte, no necesariamente sería correcto decir
y es igual a x, porque el doble podría tener un valor mayor que
el número entero.
Y así, el número entero no podría ser capaz de contener toda la
información almacenada en el doble.
Conversión implícita también se utiliza en los operadores de comparación como
mayor que, menor que, o el operador de igualdad.
De esta manera podemos decir si 5,1 es mayor que 5, y tenemos la
resultar cierto.
Dado que el 5 es un int, pero va a ser echado a un flotador para
ser comparado con el 5,1 flotador, diríamos 5.1 es
mayor que 5,0.
Lo mismo es cierto con decir si es igual a 2,0 es igual a 2.
También queremos conseguir cierto, porque el equipo echará la
número entero de 2 a flotar y luego decir 2,0 es igual a es igual a 2,0,
esto es cierto.
No olvide que también puede lanzar entre enteros y caracteres,
o valores ASCII.
Chars también deben reducirse a binario, por lo que usted
puede convertir fácilmente entre caracteres y sus respectivas
Valores ASCII.
Para aprender más sobre esto, echa un vistazo a nuestro video en ASCII.
Cuando usted toma un momento para pensar acerca de cómo los datos se almacenan,
comienza a hacer un montón de sentido.
Es como la diferencia entre el viento y el viento.
Los datos son el mismo, pero el tipo que puede cambiar cómo
interpretarla.
Mi nombre es Jordan Jozwiak, este CS50.