Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leonardo_Silva

Arquitetura de Memória

Recommended Posts

Olá pessoal, tudo bom .

 

Comecei a ler os tipos de dados, só que quando fui ver os tipos e as faixa de abrangência, fiquei meio confuso .

Já que o autor só cita "tipos de dados | faixa de abrangência | tamanho".

 

Estava lendo agora a pouco sobre memórias, mas o artigo está muito tecnico .

 

Queria entender melhor, pq alguns caso o tamanho é 16 outro é 32 . Entender faixa tambem ...pq o int só vai até 32,767 e o long até 2.147.. E sobre esses tamanhos, para usar o correto na hora de programar e pq um byte é 256 caracteres .

 

No artigo, quando falou que uma memória era uma célula, e cada célula era um byte, e são formados os endereçamentos, logo colocaram vários calculos, e uns esquemas.. fiquei meio perdido .

 

Sabem onde posso encontrar um artigo ou algo do tipo que explique melhor esse assunto, mas não precisa ser tão aprofundado como encontrei, quero somente entender melhor os tipos de dados no C++ .

 

Se souberem um tag interessante tbm para eu procurar, tranquilo . Como falei muitos artigos chega a profundar de mais nesse assunto, somente o basicuzinho para proceguir no cap. já agradeço .

 

 

Obrigado rapaziada. http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você realmente quiser entender tudo isso (o que te ajudaria em qualquer linguagem de programação, não só em C++), recomendo ler um bom livro de Organização de Computadores. Alguns autores bons são Tanenbaum e Stallings (cuidado pra não pegar o livro de "arquitetura").

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá. :D

 

Mas neste livro, não ira aprofundar muito ?

 

Pq estou querendo entender, para poder continuar .

 

Achei estranho o livro não explicar, pq ele coloca o tamanho de alguns em: 8,16,32 e até 64 bits .

 

E depois tambem empaquei na parte que um computador pode combinar mais de um byte . E pq um 8 bit é bytes ?

 

Outra coisa, sobre a faixa de abrangência, int: 32.3767. Quer dizer que posso colocar até 32.3767 caracteres ou até esse numero ?.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quer dizer que é o número máximo que você consegue representar usando os bits reservados pra esse tipo de dados. Uma analogia simplificada seria a de que o tipo de dados "guidjos", fictício (é claro), e de 2 bits, só pode representar números decimais contidos no intervalo [0, 3]. Há várias formas de armazenar valores (e várias convenções adotadas para representar números negativos, racionais, etc), e cada uma delas considera os valores binários de maneira diferente. Além disso:

 

Um byte é, por definição, 8 bits. Como uma dezena são dez unidades decimais.

 

O que você precisa entender é que os tipos de dados podem ser implementados de maneiras diferentes em cada arquitetura. Um computador pode (e geralmente o faz) endereçar unidades de bytes (ou seja, ele consegue diferenciar endereços com distância em memória de, no mínimo, 8 bits). Além disso, o tipo "int" da arquitetura x86 pode ser ser diferente (usar mais ou menos bytes) do tipo "int" das arquiteturas x64 e Solaris. Mais uma vez, tudo depende da implementação.

 

Nada disso é aprofundado. Tudo o que eu disse é muito abstrato, muito simplificado. Estudar isso em detalhes implicaria em, por exemplo, esmiuçar como um número em ponto flutuante é representado de acordo com o padrão IEEE 754. Pra quem pretende somente programar, basta saber que operações em ponto flutuante requerem processamento adicional, e devem ser evitadas quando o foco é performance (e quando é possível fazê-lo sem sacrificar tempo significante do projeto).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiro: Porque 1 byte representa até 256 Caracteres?

 

Porque um byte é uma unidade de armazenamento composta por 8 Bits.

 

Bit é a unidade de estado/controle/situação. O a menor unidade que pode ser trabalhada por computadores. Representa o booleano, verdadeiro/falso, liga/desliga, aberto/fechado, etc...

 

Para formar 1 byte, nos utilizamos de 8 bits, bits nos fornece duas possibilidades, é um binário. Então temos 8 casas de base 2. 2^8 = 256.

 

Como já foi explicado, a capacidade de armazenamento do tipo de variável depende da linguagem utilizada.

 

Vamos tomar como exemplo, os tipos numéricos de MySQL. A própria tabela do site explica a lógica utilizada, tamanho (em bytes) do espaço alocado em memória.

 

TinyINT aloca 1 byte. Como já vimos, 1 byte compreende 256 valores, logo temos 256 possibilidades para TinyINT.

 

SmallINT aloca 2 bytes. 256^2

 

MediumINT 256^3

 

INT 256^4 (Maior erro de consumo de memórias em bancos de dados. Muitas pessoas desconhecem os alocadores menores).

 

BigINT 256^8

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.