Você sabia que as variáveis só armazenam numeros? Sim e ainda só numeros inteiros (não fracionados) e não negativos!
Pois é, até as variáveis com tipos String ou char, que aparentemente guardam letra e texto.
Isso tem uma razão bem simples. Os dados das variáveis são armazenados na memória, que é composto por bytes que é um conjunto de bits. Cada byte representa um numero decimal de 0 a 255. Ou seja cada byte pode conter um numero inteiro e não negativo.
E o que é uma string? Uma string é apenas um conjunto de bytes.
E as letras? É o seguinte, por convenção cada letra e simbolo tem uma representação decimal, por exemplo a letra A maiusculo é representada pelo número 65 e o a minuzculo por 97.
A palavra AMOR realmente é isso: 65,77,79,82
Você pode ver mais de como um byte é armazenado na memória nesse link
http://alberiolima.blogspot.com/2018/01/como-os-dados-sao-armazenados-na-memoria.html
Blog com informações sobre tecnologia com foco em programação, plataformas de prototipagem de eletrônicos e microcontroladores.
sexta-feira, 19 de janeiro de 2018
Como os dados são armazenados na memória
Antes vamos ao conceito de bit e byte
bit é menor unidade computacional, ela representa um estado de energização, com energia, ou sem energia! O que podemos padronizar com 1 e 0. Isso é algo que só permite dois estados, ou está 0 ou está 1.
O byte é o conjunto de 8 bits, isso é uma padronização, um byte poderia ter outro tamanho, mas esse foi o valor padronizado! E é suficiênte para seu propósito!
por exemplo: 00000001 é equivalente ao numero 1, 00000010 ao numero 2, 00000011 ao numero 3.
Então bit é a menor unidade e o byte é a unidade básica! Uma letra ou qualquer simbolo ocupa 1byte na memória.
E a memória?
Caixinha com 8 bits, alguns em estado 1.
+-------------+
| |X| |X| | |X|
+-------------+
Cada caixinha, tem um endereço e guarda um byte (8bits), se percisar guardar uma informação maior, por exemplo de 16bits, precisará de 2bytes (2 caixinhas), e se precisar guardar 32bits precisará de 4bytes. Se precisar armazenar a palavra amor, precisará de 5 bytes.
+-------------+
|0|0|0|0|0|0|0| Caixa de 8 bits vazia, valor 0
+-------------+
+-------------+
|1|1|1|1|1|1|1| Caixa de 8 bits cheia, valor 255
+-------------+
Como obter o valor da caixinha (byte):
cada bite representa um valor de base binária, já que só acaita dois valores, 0 e 1, sem energia e com energia.
Da direita para a esquerda <-----
( o simbolo ^ representa potência, um numero elevado a um valor)
2^0 = 1 (bit0)
2^1 = 2 (bit1)
2^2 = 4 (bit2)
2^3 = 8 (bit3)
2^4 = 16 (bit4)
2^5 = 32 (bit5)
2^6 = 64 (bit6)
2^7 = 128 (bit7)
Como pode perceber,o numero 0 ocupa a caixa inteira com nada dentro, mas ocupa, é um numero válido, tem um valor definido!
Como converter o valor binario do byte em um valor decimal, que é o formato universal que usamos no dia a dia.
Se o bite0 estiver ativo, então vai 1
Se o bite1 estiver ativo, vale 2
Se o bite2 estiver ativo, vale 4
Então um numero 00000111, equivale a soma de 1 + 2 +4, que é 7
00000000 é igual a 0
11111111 é igual a 255
E é assim que um unico byte pode guardar um valor de 0 a 255
bit é menor unidade computacional, ela representa um estado de energização, com energia, ou sem energia! O que podemos padronizar com 1 e 0. Isso é algo que só permite dois estados, ou está 0 ou está 1.
O byte é o conjunto de 8 bits, isso é uma padronização, um byte poderia ter outro tamanho, mas esse foi o valor padronizado! E é suficiênte para seu propósito!
Então um bite pode ser 0 ou 1, e um byte pode ser de 00000000 a 11111111, então em um byte podemos ter 256 combinações diferentes, que seria 2^8 (dois elevado a 8). Para ficar melhor intendivel para nós, convertemos de um numero binário de base 2, para um numero decimal, que estamos mais familiarizados, e é um padrão do mundo inteiro.
Cada combinação binária em um byte, representa um numero decimal.por exemplo: 00000001 é equivalente ao numero 1, 00000010 ao numero 2, 00000011 ao numero 3.
Então bit é a menor unidade e o byte é a unidade básica! Uma letra ou qualquer simbolo ocupa 1byte na memória.
E a memória?
É um conjunto de bytes, vamos pensar em um byte como uma caixinha, e essa caixinha tem 8 divisões, como aquelas gavetas de meias, cada divisão é um bit, e ele pode ou não estar presente, ou seja, quando o espaço estiver vazio podemos dizer que o bit está 0, e quando e espaço estiver preenchido o bit está 1. E isso pode ser modificado a qualquer momento pelo programa! Na realidade o bit em estado 0 é a falta de energia, está desenergizado, e quando está 1 está energizado. Pois é um aparelho elétrico, e usa energia elétrica em todos o seu funcionamento.
Caixinha com 8 bits, alguns em estado 1.
+-------------+
| |X| |X| | |X|
+-------------+
Cada caixinha, tem um endereço e guarda um byte (8bits), se percisar guardar uma informação maior, por exemplo de 16bits, precisará de 2bytes (2 caixinhas), e se precisar guardar 32bits precisará de 4bytes. Se precisar armazenar a palavra amor, precisará de 5 bytes.
+-------------+
|0|0|0|0|0|0|0| Caixa de 8 bits vazia, valor 0
+-------------+
+-------------+
|1|1|1|1|1|1|1| Caixa de 8 bits cheia, valor 255
+-------------+
Como obter o valor da caixinha (byte):
cada bite representa um valor de base binária, já que só acaita dois valores, 0 e 1, sem energia e com energia.
Da direita para a esquerda <-----
( o simbolo ^ representa potência, um numero elevado a um valor)
2^0 = 1 (bit0)
2^1 = 2 (bit1)
2^2 = 4 (bit2)
2^3 = 8 (bit3)
2^4 = 16 (bit4)
2^5 = 32 (bit5)
2^6 = 64 (bit6)
2^7 = 128 (bit7)
Como pode perceber,o numero 0 ocupa a caixa inteira com nada dentro, mas ocupa, é um numero válido, tem um valor definido!
Como converter o valor binario do byte em um valor decimal, que é o formato universal que usamos no dia a dia.
Se o bite0 estiver ativo, então vai 1
Se o bite1 estiver ativo, vale 2
Se o bite2 estiver ativo, vale 4
Então um numero 00000111, equivale a soma de 1 + 2 +4, que é 7
00000000 é igual a 0
11111111 é igual a 255
E é assim que um unico byte pode guardar um valor de 0 a 255
sábado, 6 de janeiro de 2018
Assinar:
Comentários (Atom)
Barquino de controle remoto
Tutorial da construção e teste de um barquinho bi-motor de controle remoto http://www.informacional.com.br/p/barquinho-bi-motor-com-cont...
-
Na prototipagem e no desenvolvimento de eletrônicos, muitas vezes nos deparamos com a necessidade de um controle sem fio para dispositiv...
-
O LT8900 é um módulo de rádio que opera em 2.4G, ele é um transdutor então pode operar tanto enviando quanto recebendo dados, o modelo da...
-
Você sabia que as variáveis só armazenam numeros? Sim e ainda só numeros inteiros (não fracionados) e não negativos! Pois é, até as variáve...
