• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

electron++

Inteiros e Longos no C++

14 mensagens neste tópico

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???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E provavelmente os tamanhos variam de sistema para sistema, podendo não ser sempre iguais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É 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???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

obtive

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

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