[Powered by Google Translate] JORDAN Jozwiak: fundição Tipo, no sentido mais simples, é uma modo para alterar a interpretação de um computador de alguns dados por implícita ou explicitamente, alterando seu tipo de dados. Como alterar um int a um float, ou vice-versa. Para entender tipo de vazamento, é preciso começar com o básico - tipos de dados próprios. Em linguagens como C, todas as variáveis ​​têm algum tipo do tipo de dados que determina como o computador, e do mesmo modo o usuário, que interpreta variável. Numéricos tipos de dados, tais como um int, longo tempo float, e duplo, todos têm suas próprias características únicas e são usado para especificar valores com os mais variados e de precisão. Tipo de vazamento nos permite ter um número de ponto flutuante como 3,14 e obter a peça antes do decimal, 3 neste caso, , lançando-a um int. Vamos dar um exemplo do idioma Inglês para um breve revisão de tipos, e para ver como tipo de vazamento pode mudar a nossa forma de interpretar uma parte dos dados. Para os dados, vamos dar os símbolos aqui. Eu só referir a essas linhas cuidadosamente configurados como símbolos, mas como alguém que conhece o idioma Inglês, você imediatamente reconhecer que eles são, de fato, as letras. Você implicitamente compreendido o tipo de dados. Olhando para esta seqüência de letras, podemos ver dois palavras diferentes, cada um com seu próprio significado. Não há o substantivo, o vento, como o vento sopra no exterior. E há o verbo, o vento, como no que eu preciso enrolar meu relógio analógico. Este é um exemplo interessante, porque podemos ver como o tipo que nós atribuímos aos nossos dados, se substantivo ou verbais, muda a forma como usamos esses dados - como o vento palavra ou vento. Apesar de um computador não se preocupa com gramática e peças de fala Inglês, o mesmo princípio básico se aplica. Isto é, nós podemos mudar a interpretação do exato mesmos dados armazenados na memória simplesmente convertê-lo a um tipo diferente. Aqui estão os tamanhos dos tipos mais comuns em um 32-bit sistema operacional. Temos um char menos 1 byte int e float de 4 bytes, um longo de comprimento e uma dupla de 8 bytes. Porque um int ocupa 4 bytes, vai demorar até 32 bits quando ele é armazenado na memória como uma série binária de zeros e uns. Enquanto a nossa variável permanece como um tipo int, o computador sempre converter os uns e zeros de binário para o número original. No entanto, teoricamente poderia lançar os 32 bits em uma série de tipos booleanos. E então o computador não verá mais um número, mas vez, uma coleção de zeros e uns. Nós também pode tentar ler esses dados como um numérico diferente tipo, ou mesmo como uma seqüência de quatro caracteres. Ao lidar com números em casting, você deve considerar como a precisão do seu valor será afetada. Tenha em mente que a precisão pode permanecer o mesmo, ou você pode perder precisão, mas você nunca pode ganhar precisão. Vamos passar para as três formas mais comuns que você pode perder precisão. Lançando um float para um int causará truncamento de tudo depois do ponto decimal, então você fica com o número inteiro. Se tomarmos o x bóia que será igual a 3,7, pode-se lançar esta variável x para um int, basta escrever em int parênteses. Sempre que usamos este termo aqui, nós vamos efetivamente estar usando o valor de três, porque nós truncado tudo depois do ponto decimal. Nós também podemos converter um longo tempo para um int, que será similarmente levar a uma perda de bits de ordem superior. Um longo tempo ocupa 8 bytes, ou 64 bits na memória. Então, quando nós lançá-lo para um int que só tem 4 bytes, ou 32 bits, que são, essencialmente, cortando todos os bits que representam os valores mais elevados binários. Você também pode lançar um duplo para um float, que vai dar você flutuar o mais próximo possível do duplo sem necessariamente arredondamento lo. Semelhante ao nosso longo tempo de conversão int, a perda de precisão é porque um duplo contém mais dados. A dupla permitirá que você armazene 53 bits significativos, cerca de 16 dígitos significativos. Considerando uma bóia só permitem armazenar 24 bits significativos, cerca de sete dígitos significativos. Nestes dois últimos casos, pode ser útil para pensar digite elenco como redimensionar uma foto. Quando você vai de um tamanho grande para um tamanho pequeno, você não pode ver coisas tão claramente, porque você perdeu dados sob a forma de pixels. Tipo de vazamento também pode causar problemas quando ints para lançar carros alegóricos. Desde que flutua em uma máquina de 32 bits só tem 24 bits significativos, eles não podem representar precisamente valores ao longo de 2 à potência de 24, ou 16777217. Agora vamos falar sobre o elenco explícito e implícito. Conversão explícita é quando escrevemos o tipo entre parênteses antes de um nome de variável. Como exemplo, antes que escreveu int entre parênteses antes de nossa flutuar variável x. Desta forma, obtemos o valor int, o valor truncado de 3,7 - 3. A conversão implícita é quando o compilador muda automaticamente tipos semelhantes às de um tipo super, ou exercer algum outro tipo de lançando sem exigir que o usuário escreva qualquer código adicional. Por exemplo, quando adicionar 5 e 1,1, nossos valores já tipos associados a eles. O 5 é um int, enquanto 1,1 é um flutuante. A fim de adicioná-los, o computador lança 5 em uma bóia, que teria sido a mesma coisa que escrevendo 5.0 na primeiro lugar. Mas esta forma de dizer flutuador 5, ou 5,0, mais o que já era uma bóia, 1.1, e de lá podemos realmente adicionar estes valores e obter o valor 6.1. A conversão implícita também nos permite atribuir variáveis ​​de tipos diferentes uns dos outros. Nós sempre podemos atribuir um tipo menos precisa em um mais um preciso. Por exemplo, se temos um duplo x, y e um int - e estes poderiam ter quaisquer valores que estabelecemos que eles - podemos dizer x é igual a y. Porque o casal tem mais precisão do que um int, então nós não vai perder nenhuma informação. Por outro lado, não seria necessariamente correcto afirmar y é igual a x, como a dupla pode ter um valor maior do que o número inteiro. E assim, o número inteiro pode não ser capaz de realizar todos os informações armazenadas na dupla. A conversão implícita também é usado em operadores de comparação como maior do que, menor que, ou o operador de igualdade. Dessa forma, podemos dizer que se 5,1 é maior do que 5, e temos a resultado verdadeiro. Porque 5 é um int, mas vai ser convertido para um flutuador, a fim de ser comparado com o flutuador 5.1, diríamos 5.1 é maior do que 5,0. O mesmo é verdade em dizer se é igual a 2,0 é igual a 2. Nós também obter verdade, pois o computador vai lançar o inteiro de 2 a flutuar e então dizer 2,0 equivale a 2,0 é igual, isso é verdade. Não se esqueça que também pode lançar entre ints e chars, ou valores ASCII. Chars também precisa ser reduzido a binário, que é por isso que você pode converter facilmente entre chars e seus respectivos Valores ASCII. Para saber mais sobre isso, confira nosso vídeo em ASCII. Quando você toma um momento para pensar sobre como os dados estão armazenados, ele começa a fazer muito sentido. É como a diferença entre o vento eo vento. Os dados são os mesmos, mas o tipo pode alterar a forma como interpretá-lo. Meu nome é Jordan Jozwiak, este CS50.