Ir para o conteúdo
electron++

Inteiros e Longos no C++

Mensagens Recomendadas

electron++    0
electron++

Oi!

eu estive a ver a limits.h no wikipedia http://en.wikipedia.org/wiki/Limits.h

E verifiquei que o tamanho de um numero inteiro é exactamente igual ao de um numero longo, Eu estava habituado aos valores da ANSI standard minimum-magnitude value  mas o que é certo é que testei no meu pc e o que é certo é que um int é um long.

Eu sinceramente não percebi porque motivo deram o mesmo tamanho aos dois, alias, teria muita mais logica banir de vez os long's ou então aumentar o tamanho destes!

Alguém sabe o motivo desta alteração que na minha opinião é ridícula???

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
electron++    0
electron++

É custa-me de todo a entender isto, porque acho de todo irracional!

Declarar um int ou um long é a mesma coisa! Não seria mais rentável, por exemplo, um long ter 6 bytes e um int 4???

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    312
Rui Carlos

Declarar um int ou um long é a mesma coisa!

Isso depende da máquina. Pode haver máquinas onde um int tem 16 bits e um long continua a ter 32 bits.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

Eu ja pesquisei por "PC circa 2007" no Google e não obti resultados satisfatórios, mas o meu computador é de 2006...

obtive

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
electron++    0
electron++

Eu fui agora pesquisa no Google e nada de relevante....

Apenas reparei que este tópico ja aparece na 1ª página de resultados  :cheesygrin:

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
mogers    14
mogers

Tu deves olhar para a coluna "ANSI standard minimum-magnitude value", isto é que é o standard. Um 'int' tem no minimo 2 bytes e um long tem no minimo 4 bytes. Esta é que é a garantia do standard.

Na maioria dos compiladores, creio que o 'int' tem 4 bytes tal como o 'long'.

Edit: se bem me lembro, no Visual C++ 6.0 da Microsoft, um 'int' tem 2 bytes apenas, ou seja , vai apenas até +32,767

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
shumy    17
shumy

Isso está ligado normalmenta a arquitectura do CPU. Começa a estar no mercado muitas máquinas de 64 bits, dai que o int seja alterado para essas máquinas.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
electron++    0
electron++

Isso está ligado normalmenta a arquitectura do CPU. Começa a estar no mercado muitas máquinas de 64 bits, dai que o int seja alterado para essas máquinas.

O meu CPU é de 32 bits e de 2006 e não segue o standart!

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

Eu sempre programei em CPUs de 32 bits, e sempre interpretei tanto int como long como 32 bits. Normalmente o tipo int tem um tamanho igual ao numero de bits associado à arquitectura para a qual se está a programar. Se experimentares o sizeof num compilador para uma arquitectura de 64 bits, provavelmente int terá 8 bytes. Já o tipo long não faço ideia :D

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade