Programar em C/Tipos de dados: diferenças entre revisões

[edição verificada][edição verificada]
Conteúdo apagado Conteúdo adicionado
Abacaxi (discussão | contribs)
m Abacaxi moveu a página C/Tipos de dados para Programar em C/Tipos de dados
Abacaxi (discussão | contribs)
Sem resumo de edição
Linha 26:
Ora o que aconteceu é que nos bastavam pouco menos de 256 combinações (8 bits ordenados) para termos uma combinação para cada letra, maiúscula e minúscula, número, pontos de exclamação, interrogação, etc. …e isso era o suficiente para a nossa comunicação. Mas para haver um certo consenso para que uma dada combinação desse um dado símbolo surgiu a tabela ASCII (surgiram outras tabelas quando se quis colocar os símbolos de outras línguas, como o japonês ou o chinês – ver tabela ISO)
Portanto com 8 bits ou 8 casas conseguíamos ter qualquer símbolo que utilizamos. A esse conjunto de 8 bits chamamos de byte, mais convenientemente. Portanto, um byte tem 8 casas de zeros /uns , ou seja 2 elevado a 8 dá as 256 combinações. E o byte é a unidade básica que o C++ consegue operar e é representado pelo tipo char.
 
'''Pergunta''': Quando tivermos mais do que 256 bytes acrescenta-se um outro byte?
*Sim. Com dois bytes o número de combinações é 256*256.
 
'''Pergunta''': Qual a razão do computador usar apenas bytes como medida mínima? Será que não seria possível utilizar 7 bits ou 5 bits?
*Não é possível pelo fato do computador só entender 0 e 1 então no caso é impossível se ter um número ímpar de bits porque tudo tem que ter o 0 e o 1 por isso que tudo na informática evolui multiplicando-se por 2 (32, 64, 256, 512)
 
=== Números inteiros ===
Linha 51 ⟶ 57:
 
* '''<code>signed</code>''' diz que o número deve ser guardado com sinal, ou seja, serão permitidos valores positivos e negativos. Esse é o padrão, portanto esse modificador não é muito usado.
dado* '''<code>unsigned</code>''' diz que o número deve ser guardado '''sem sinal'''. Com isso, o valor máximo da variável aumenta, já que não teremos mais valores negativos. Por exemplo, com uma variável <code>char</code> podemos guardar valores de -128 a 127, mas com uma variável <code>unsigned char</code> pode guardar valores de 0 a 255.
* '''<code>unsigned</code>''' diz que o número deve ser guar
 
Para usar esses modificadores, devemos colocá-los '''antes''' do nome do tipo da variável, sendo que o modificador de sinal deve vir antes do modificador de tamanho caso ambos sejam usados. Por exemplo:
 
'''unsigned char''' c;
'''short int''' valor;
'''unsigned long int''' resultado;
 
<div style="background-color: #ddffdd; padding: 10px; margin: 20px;">'''Nota:''' Você pode abreviar <code>short int</code> e <code>long int</code> para simplesmente <code>short</code> e <code>long</code>, respectivamente.</div>
 
==== Tabela de tipos inteiros ====
Linha 95 ⟶ 109:
 
'''Nota''': O tipo '''long double''' é específico de máquinas X86.
 
dado '''sem sinal'''. Com isso, o valor máximo da variável aumenta, já que não teremos mais valores negativos. Por exemplo, com uma variável <code>char</code> podemos guardar valores de -128 a 127, mas com uma variável <code>unsigned char</code> pode guardar valores de 0 a 255.
 
Para usar esses modificadores, devemos colocá-los '''antes''' do nome do tipo da variável, sendo que o modificador de sinal deve vir antes do modificador de tamanho caso ambos sejam usados. Por exemplo:
 
'''unsigned char''' c;
'''short int''' valor;
'''unsigned long int''' resultado;
 
<div style="background-color: #ddffdd; padding: 10px; margin: 20px;">'''Nota:''' Você pode abreviar <code>short int</code> e <code>long int</code> para simplesmente <code>short</code> e <code>long</code>, respectivamente.</div>
 
=== Bool ===
Linha 116 ⟶ 120:
será isto verdade?!! isso quer dizer que se guardarmos os endereços de todos os bytes, só temos 1/3 da memória disponível para guardar valores. Bem isto é um pouco estanho, mas repare-se que apenas vamos guardar os addresses das variáveis reservadas. Depois as variáveis nem sempre são de 1 byte, por isso apenas iremos guardar o endereço do primeiro byte e não de todos. por fim faz sentido guardar o endereço de outro endereço?
Os endereços de memória (addresses) são normalmente expressos em linguagem hexadecimal (base 16, utilizam os 10 algarismos mais as 6 primeiras letras – de a a f - do alfabeto para fazerem as 16).
 
'''Pergunta''': Quando tivermos mais do que 256 bytes acrescenta-se um outro byte?
*Sim. Com dois bytes o número de combinações é 256*256.
 
'''Pergunta''': Qual a razão do computador usar apenas bytes como medida mínima? Será que não seria possível utilizar 7 bits ou 5 bits?
*Não é possível pelo fato do computador só entender 0 e 1 então no caso é impossível se ter um número ímpar de bits porque tudo tem que ter o 0 e o 1 por isso que tudo na informática evolui multiplicando-se por 2 (32, 64, 256, 512)
 
=== Compatibilidade de dados na atribuição de valor ===