Últimas atualizações
Novo endereço do Cognosco: http://www.cognoscomm.com
Diário das pequenas descobertas da vida.
Sexta-feira, 8 de Julho de 2005
Bits & Bytes
Bits & bytesQuem trabalha com computadores está habituado a ouvir falar de bytes. Houve-se falar de bytes quando se fala nas dimensões de um ficheiro ou do disco duro ou da memória RAM. Mas o que é exactamente um byte e como está ligado ao tamanho de um ficheiro?</br>

Para se falar de bytes (lê-se «báites</i>) é necessário compreender primeiro o que é um bit («bit» é a contracção da expressão inglesa BInary digiT ou seja «dígito binário»). Como já foi referido no artigo Iotas e nanos os computadores trabalham com a base binária (que tem apenas os algarismos 0 e 1). As contas com as base binária e a base decimal dão valores diferentes se bem que se possa passar de uma para a outra e obter-se os valores correctos nessa base. É assim que os computadores fazem as contas: primeiro transformam todos os números para ficarem na base binária, fazem as contas nessa base e depois passam o resultado para a base decimal.</br></br>

Para se entender como funciona a base binária veja-se como funciona a base decimal. O conceito é o mesmo. Tem de se escrever o número como uma série de algarismos entre 0 e 9 a multiplicar por potências de 10.</br>O número 105 = 100 + 5 = 1x102 + 5x100 (nunca esquecer que qualquer número elevado a 0 é 1, excepto o próprio 0. 00 não é um valor, é um paradoxo matemático devido às propriedades únicas do 0). Assim 105 = 1x102+ 0x101 + 5x100 (Todas as potências têm de estar presentes. Se falta alguma tem de se juntar a multiplicar por 0). O número na base decimal são os algarismos que estão a multiplicar pelas potências (1 0 5).</br>Dígitos binários</br></br>

Na base binária é a mesma coisa só que, em vez de 10, usa-se o 2. O número 1110(2) (significa que está na base binária) é 1x23+ 1 x22 + 1x21 + 0 x20 = 1x8 + 1x4 + 1x2 + 0x1 = 8 + 4 + 2 = 14(10). (Para saber que a primeira potência é 3 conta-se a partir da direita. A última é sempre 0 por isso neste caso a primeira é 3. A primeira é sempre o número de algarismos menos 1. Neste caso há 4 algarismo, 1 0 2 0, logo a primeira potência é 23)</br></br>

e.g. Como faz o computador a conta 3 + 4 ?</br>
~ Primeiro passa o 3 para a base binária. 3 = 2 + 1 = 1x21 + 1x20 = 11(2).</br>
~ Segundo passa o 4 para a base binária. 4 = 2x2 = 22. Como todas as potências da primeira até 0 têm de existir. 4 = 1x22 + 0x21+ 0x20 = 100(2).</br>
~ Depois faz a soma 11(2) + 100(2) = 111(2)</br>~ Finalmente passa o resultado para a base decimal: 111(2) = 1x22 + 1x21 + 1x20 = 1x4 + 1x2 + 2x1 = 7(10).</br></br>

~ E eu que pensava que os computadores faziam contas muito rapidamente! Afinal são ainda mais rápidos do que eu pensava. Em pouco tempo fazem 4 contas diferentes! Incrível!</br></br></br>

O número de contas que uma simples conta exige aumenta conforme quantos números se estão a somar, claro. Por cada número a mais é mais uma transformação para a base binária que se tem de fazer.</br></br>

~ Está bem, mas o que tem isto a ver com bytes?</br></br>

Base bináriaAo contrário dos seres humanos que têm 2 mãos com 10 dedos para usar a base decimal os computadores não têm dedos nem mãos (nem, já agora, pés...). O equivalente nos computadores aos dedos é um pequeno circuito que está ligado ou desligado.</br>
Quando está ligado corresponde a 1, quando está desligado corresponde a zero, como se fosse uma lâmpada. Um bit é uma «lâmpada», ou seja, a informação se o algarismo é 0 («desligado») ou 1 («ligado»).</br>Uma sequência de bits forma um byte. </i>Byte 110100 </br>Neste exemplo concreto está o byte 10100, que corresponde ao número 20.</br>Quanto mais comprida for a cadeia de bits maior é o número de bytes diferentes que o computador reconhece. A cada byte corresponde uma letra, um número ou um símbolo. Um sistema 8-bit significa que cada byte é composto de 8 bits. Desta forma há 256 bytes diferentes, cada byte correspondendo a um carácter diferente. Este sistem 8-bit é o chamado código ASCII ( American Standard Code for Information Interchange).</br></br>

Cognosco em ASCII decimalCada número de 0 a 256 corresponde a um símbolo. O computador trabalha e guarda esses dítos na forma binária. A tabela ASCII é dada na base decimal para ser mais fácil de usar por nós mas os computadores transformam essa informação para base binária. Assim, quando um computador está a guardar um documento de texto começa por transformar cada letra, cada espaço, cada pontuação, cada algarismo num número binário de acordo com a tabela ASCII. Guarda depois esses valores na forma de bytes na sua memória («no local da sua memória acende e apaga alguns bits para formar o texto inteiro»). As letras maiúsculas têm um código ASCII diferente das minúsculas (ver no exemplo «C» e «c»), os espaços também, as vírgulas, o «enter»,...</br></br>

O tamanho do ficheiro é igual ao número de bytes que ocupa na memória do computador.
e.g.</br>
~ Um disco que tivesse uma memória de 20 bytes conseguiria guardar 20 bytes ou seja 20 caracteres.</i></br></br>
~ Um disco que tivesse uma memória de 2 megabytes</b> conseguiria guardar 2 megabytes ou seja 1 048 576 caracteres.</br></br>
(Ver o artigo Iotas e nanos sobre a razão de um megabyte não ser 1000 bytes mas sim 1 048 576 bytes).</br></br>

Os números 0 e 1 são os números mais poderosos à face da Terra. Apesar de normalmente negligenciados devido ao seu pouco valor numérico foram os algarismos que revolucionaram o Mundo através dos computadores!
</i>


Publicado por Mauro Maia às 15:31
Atalho para o Artigo | Cogitar | Adicionar aos favoritos

6 comentários:
De Mauro a 8 de Julho de 2005 às 19:17
Este artigo está com uma formatação estranha. Formatei o artigo correctamente mas o blog ignora a formatação quando mostra o artigo. Tive de recorrer à formatação URL para que aparecessem os parágrafos. Mesmo assim não está grande coisa (a formatação) mas foi o melhor que neste momento foi possível (inicialmente nem sequer mostrava parágrafos. O artigo era apresentado como uma sequência ininterrupta de letras e imagens de aspecto nada agradável e extremamente difíl de seguir)


De Rata Zinger a 8 de Julho de 2005 às 19:39
Constato agradada que este blog ressuscitou! O que aconteceu?


De Mauro a 8 de Julho de 2005 às 21:46
No artigo «He's alive!» do dia 5 de Julho está tudo explicado. Não foi intencional nem alguma vez colocarei a possibilidade de extinção do Cognosco. Para isso já basta o lince ibérico da Serra da Malcata... ;)


De maresia a 10 de Julho de 2005 às 13:29
credo!!! eu não digo que estás perdido?!?! primeiro as octanas, agora os bit e os byte, ó genti!!! calma aí que ainda ficamos cultos!!

:P


De Andr a 23 de Janeiro de 2008 às 19:42
Apenas uma nota relativamente à frase: (não confundir com «carácter»!). É de referir que se tratam de palavras homógrafas e, portanto, se escreve sempre carácter, caracter não existe. No dicionário encontrarás as definições todas nessa mesma palavra.


De Mauro a 23 de Janeiro de 2008 às 21:15
Obrigado, «André». Fiz a verificação que aconselhaste e de facto obtive o resultado que indicas. Tinha a ideia de que assim não era. Estava enganado e já efectuei a mudança no artigo. Obrigado.


Comentar artigo

Cognosco ergo sum

Conheço logo sou

Estatísticas

Nº de dias:
Artigos: 336
Comentários: 2358
Comentários/artigo: 7,02

Visitas:
(desde 26 de Abril de 2005)
no Cognosco
 
Cogitações recentes
Obrigado, João, pela contribuição. Não está no art...
Estive lendo sua cogitação à respeito do cálculo d...
Obrigado, Aleff, pelo apreço pelo artigo. Exatamen...
achei muito interessante essa sua forma de ver a l...
Obrigado, Desejo um bom 2014 também.
Artigos mais cogitados
282 comentários
74 comentários
66 comentários
62 comentários
44 comentários
Artigos

Fevereiro 2017

Janeiro 2017

Dezembro 2016

Novembro 2016

Outubro 2016

Julho 2016

Março 2015

Dezembro 2014

Outubro 2013

Maio 2013

Fevereiro 2013

Outubro 2012

Setembro 2012

Agosto 2012

Junho 2012

Janeiro 2012

Setembro 2011

Abril 2011

Fevereiro 2011

Dezembro 2010

Maio 2010

Janeiro 2010

Agosto 2009

Abril 2009

Fevereiro 2009

Janeiro 2009

Novembro 2008

Outubro 2008

Agosto 2008

Julho 2008

Junho 2008

Abril 2008

Fevereiro 2008

Janeiro 2008

Novembro 2007

Outubro 2007

Agosto 2007

Julho 2007

Junho 2007

Maio 2007

Abril 2007

Março 2007

Fevereiro 2007

Janeiro 2007

Dezembro 2006

Novembro 2006

Outubro 2006

Setembro 2006

Agosto 2006

Julho 2006

Junho 2006

Maio 2006

Abril 2006

Março 2006

Fevereiro 2006

Janeiro 2006

Dezembro 2005

Novembro 2005

Outubro 2005

Setembro 2005

Julho 2005

Junho 2005

Maio 2005

Abril 2005

Março 2005

Fevereiro 2005