• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   13-02-2016

      Prezados membros do Clube do Hardware,

      Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:
        Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas ao formulário abaixo:    Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
Seguidores 0
Guest lucca

[Resolvido] Variáveis em c

5 posts neste tópico

Olá,

Gostaria de saber qual a maior variavel em C e como posso capturá-la e imprimí-la, ou seja, qual o especificador de conversão necessário. E quanto ela armazena.

Grato

Lucca

Compartilhar este post


Link para o post
Compartilhar em outros sites

A maior variável inteira especificada pelo padrão ANSI/ISO C é o tipo long (signe de unsigned):


long     ->    de -2147483647  a  +2147483647
unsigned long  ->   de  0  a  4294967295

E quanto aos números de ponto flutuante, a maior é a long double:


long double   ->  +/-   1E-37  a  1E+37  e precisão mínima de 10 dígitos

Esse são os padrões mínimos. Obviamente, cada implementação pode fornecer alcances maiores.

Para imprimir um long com printf use o especificador "%ld", e para um unsigned long use "%lu".

Para imprimir um long double, use "%Lf", "%Le" ou "%Lg". Note que o "L" aqui é maiúsculo.

O padrão ANSI/ISO C não especifica um tamanho em bytes para os tipos, apenas o alcance. Você pode saber quantos bytes a variável tem usando o operador sizeof.

Ex:


unsigned long numero;
scanf("%lu", &numero);
printf("numero vale %lu e ocupa %d bytes\n", numero, sizeof(numero) );

Compartilhar este post


Link para o post
Compartilhar em outros sites
Postado Originalmente por DanielKO@06 Jul. 2002, 01:35

E quanto aos números de ponto flutuante, a maior é a long double:


long double   ->  +/-   1E-37  a  1E+37  e precisão mínima de 10 dígitos

Esse são os padrões mínimos. Obviamente, cada implementação pode fornecer alcances maiores.

Sobre isso que eu ia falar.

O range que você escreveu para a precisão dupla, é o mesmo que a precisão simples. Isso é para um número de 32-bit. Falando em PCs, o co-processador matemático processa números de 80-bit (precisão extendida) desde o velho 8087 (começo da década de 80, eu acho).

Hoje, qualquer compilador decente tem 3 precisões de ponto flutuante suportadas por hardware (tem outras que são emuladas):

float ou single de 32-bit,

double de 64-bit e

long double ou extended de 80-bit

Esse última vai desde 1,2·10-4932 até 1,2·10+4932 (além do sinal). É o maior com certeza e são 19-20 dígitos. Float tem apenas 7-8 dígitos de precisão, e double 15-16. Lembrando que depende o valor para se usar 19 ou 20 dígitos

Quanto aos inteiros, mais atualmente apareceu o Int64 que é um inteiro de 64-bit (emulados pois os processadores são de 32-bit). O range dele vai de -4611686018427387904 até 4611686018427387903. Mas o processamento usado ele é bem mais lento que com long int.

Agora parece que já tem alguns compiladores suportando Int128 de 128-bit.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente, existem alcances maiores. Os que passei são os do padrão ANSI/ISO C. Claro, a graaaaaaande maioria dos compiladores fornecem alcances maiores. Mas lembrando que isso é dependente da implementação, não dá prá contar sempre com isso.   ???

Mas obrigado pela informação mesmo assim;   :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu pessoal era isso que eu queria saber, e obrigado pelas informações extras...hehe

lucca

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
Seguidores 0