Entrar
Últimos assuntos
Os membros mais ativos da semana
Nenhum usuário |
Tudo sobre máscaras de dados
Página 1 de 1
Tudo sobre máscaras de dados
Máscara de Dados
Máscaras de dados são usadas para definir entradas e saídas de dados em C. Basicamente, ela demonstra ao programa que tipo de conversão deve ser adotado para converter os bytes armazenados em uma variável.
Por exemplo, se entrarmos com uma variável de ponto flutuante (float) que usa 4 bytes de memória, na saída, também devemos utilizar uma máscara de ponto flutuante. Se utilizarmos uma máscara de número inteiro, o algoritmo vai ler apenas os dois primeiros bytes, pois uma variável inteira tem apenas a metade dos bytes de ponto flutuante.
E além disso, variáveis int, float e double usam padrões diferentes de armazenamento. Por exemplo, se digitarmos a entrada 10, ela será convertida em bytes em int, que será convertida em bytes diferentes em float, que por sua vez, será totalmente diferente de double. Apenas char é igual int e vice-versa.
As máscaras
Agora que vimos para que servem as máscaras, veremos qual é a máscara de cada tipo de entrada e saída.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
O problema de usar máscaras é a ambiguidade que pode trazer ao compilador.
Por exemplo: se por acaso quisermos utilizar o símbolo %, como faremos?
Nesse caso podemos usar outros tipo de máscara.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Também podemos usar modificadores nas máscaras
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Máscaras de dados são usadas para definir entradas e saídas de dados em C. Basicamente, ela demonstra ao programa que tipo de conversão deve ser adotado para converter os bytes armazenados em uma variável.
Por exemplo, se entrarmos com uma variável de ponto flutuante (float) que usa 4 bytes de memória, na saída, também devemos utilizar uma máscara de ponto flutuante. Se utilizarmos uma máscara de número inteiro, o algoritmo vai ler apenas os dois primeiros bytes, pois uma variável inteira tem apenas a metade dos bytes de ponto flutuante.
E além disso, variáveis int, float e double usam padrões diferentes de armazenamento. Por exemplo, se digitarmos a entrada 10, ela será convertida em bytes em int, que será convertida em bytes diferentes em float, que por sua vez, será totalmente diferente de double. Apenas char é igual int e vice-versa.
Como podemos ver, apenas int e char deram um resultado satisfatório, float resultou em algo inesperado - nada./* EXEMPLO DO QUE PODE ACONTECER DE ERRADO EM UM PROGRAMA
Aqui declararemos uma variavel inteira valendo 65.
veja o que acontece quando mandamos imprimir o inteiro como flutuante
*/
#include
int main (void)
**
int nr=65;
printf ("Este e um int\t-> %d\n", nr)*
printf ("Este e um char\t-> %c\n", nr)*
printf ("Este e um float\t-> %f\n", nr)*
return 0;
**
As máscaras
Agora que vimos para que servem as máscaras, veremos qual é a máscara de cada tipo de entrada e saída.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Alguns cuidados// Exemplo de mascaras e formato de seus dados
#include
int main (void)
**
printf ("Mascara d\t-> %d\n", 1)*
printf ("Mascara c\t-> %c\n", 'A')*
printf ("Mascara f\t-> %f\n", 1.65)*
printf ("Mascara i\t-> %i\n", 1)*
printf ("Mascara ld\t-> %ld\n", 1)*
printf ("Mascara e\t-> %e\n", 1.65)*
printf ("Mascara o\t-> %o\n", 256)*
printf ("Mascara x\t-> %x\n", 256)*
printf ("Mascara s\t-> %s\n", "Cadeia de caracteres (string)")*
return 0;
**
O problema de usar máscaras é a ambiguidade que pode trazer ao compilador.
Por exemplo: se por acaso quisermos utilizar o símbolo %, como faremos?
Nesse caso podemos usar outros tipo de máscara.
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Também podemos usar modificadores nas máscaras
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Fonte: tiexpert// Exemplo de modificadores de mascaras
#include
int main (void)
**
printf ("Original \"%d\"\nModificado: %+d %+d\n\n", 1, 1, -1)*
printf ("Original \"%f\"\nModificado: %.1f %.3f\n\n", 1.2345, 1.2345, 1.2345)*
printf ("Original \"%o\"\nModificado: %#o\n\n", 256, 256)*
printf ("Original \"%x\"\nModificado: %#x\n", 256, 256)*
**
Harchel- Programadores
- Mensagens : 27
Reputação : 2
Moedas : 390
Cash : 0
Ocorrências :
Tópicos semelhantes
» [Tutorial] ~> Tudo Sobre DDTank
» [Mega•Tutorial] Tudo sobre Transformice
» [Mega•Tutorial] Tudo sobre DDtank.
» [MEGA۩TUTORIAL]Tudo sobre Transformice
» Tudo o que você precisa saber sobre o iPhone 5S
» [Mega•Tutorial] Tudo sobre Transformice
» [Mega•Tutorial] Tudo sobre DDtank.
» [MEGA۩TUTORIAL]Tudo sobre Transformice
» Tudo o que você precisa saber sobre o iPhone 5S
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Qui Jan 11, 2018 4:06 pm por Founder
» Canal no youtube! voltando
Qui Jan 11, 2018 4:05 pm por Founder
» Player.img GTA SA
Sex Out 14, 2016 2:48 pm por dr7games
» [iPixel] Atualizações - Back!
Seg Out 03, 2016 8:25 pm por Reset
» DDtank Pirata - Server TITAN
Dom Out 02, 2016 7:32 pm por Founder
» Diogo
Sáb Out 01, 2016 5:16 pm por Snnop
» (EXCLUSIVO) - Technic Laucher Crackeado/Pirata!
Sáb Out 01, 2016 11:48 am por dr7games
» [HABBO] Rockz Hotel
Qua Set 28, 2016 9:19 pm por Snnop
» Habbo novo - Peace
Qua Set 28, 2016 9:16 pm por Snnop
» Mega Habbo Net
Qua Set 28, 2016 9:15 pm por Snnop