quinta-feira, 21 de fevereiro de 2013

Como Computadores Leem, Parte 2: Linguagem ASCII

Olá, amigos!
Na semana passada discutimos o sistema binário, e como ele é usado para escrever qualquer número a partir de combinações de "0" e "1". Hoje vamos ver como os computadores se utilizam desse sistema para armazenas arquivos de texto, com letras, números, símbolos e algumas estruturas fundamentais.

Primeiro, precisamos saber como a informação é de fato gravada em um disco rígido. A menor unidade de informação é o bit, que no disco pode conter dois valores: 1 ou 0, verdadeiro ou falso, respectivamente (alguma idéia sobre onde estamos indo?). Os computadores trabalham com o código binário de 8 dígitos, ou seja, cada número é representado por um byte, que equivale a 8 bits. Em outras palavras, Um byte de 8 bits define um número de 0 até 127.
1 byte = 8 bits
81 = 0101 0001
 Agora, como os números de 0 até 127 são úteis a um computador? Ele se utiliza de uma linguagem própria, a ASCII (American Standard Code for Information Interchange, ou Código padrão americano para troca de informação), para associar a cada número um símbolo de texto.
Os primeiros 31 símbolos, ou seja, os números de 0 a 31, são não imprimíveis, e só dizem ao computador coisas do tipo "fim de linha", ou "tabulação horizontal", enquanto os números de 32 até 126 representam os algarismos, letras e símbolos como aspas, parênteses e acentos. O número 127 é usado para o "delete". Você pode conferir a tabela completa aqui.
Uma palavra de oito letras dispõe de oito bytes no disco rígido, um para cada letra. Por exemplo, a palavra gato é escrita da seguinte forma:
Você pode fazer o teste, digitando um texto pequeno no seu bloco de notas, e conferir o tamanho do arquivo em bytes.
Assim, da próxima vez que você quiser conversar com o Akinator, saiba que ele só entende "1" e "0".
Até a próxima!

quinta-feira, 14 de fevereiro de 2013

Como Computadores Leem, Parte 1: Sistema Binário

Olá, amigos!
Aproveitando que o carnaval acabou e começa o Ano Novo brasileiro, vamos explorar mais um assunto fascinante: os números binários.
O sistema de númeração binário consiste em uma forma de escrever qualquer número como uma combinação de "1" e "0", daí o nome binário: usando esses dois números, é possivel escrever qualquer outro, utilizando-se de regras simples. Pra você ter uma idéia, usando 8 digitos, é possível escrever os números de 1 à 127.
Agora, como o sistema funciona? Aqui, vou considerar apenas 4 dígitos, o que me permite escrever de 1 até 15. O sistema binário usa, fundamentalmente, a soma de potências de dois. No nosso caso (4 dígitos), são elas:
Agora vem a parte realmente interessante do código. Vamos, agora, construir o código no número 11. Utilizando-se somas dos números acima (1, 2, 4 e 8), é possível escrever qualquer número de 1 a 15. No caso do número 11, essa soma é 1 + 2 + 8, ou ainda, 20 + 2¹ + 2³. Agora como escrevemos isso em combinações de "0" e "1"?
O sistema binário considera 0 como falso, e 1 como verdadeiro. Assim, da direita para esquerda, escrevemos quais potências de dois estamos usando para escrever o número, usando 1 quando ela é utilizada e 0 quando não. Assim, o número 11 fica:
Como extensão, os outros números são:
0 = 0000
1 = 0001
2 = 0010
3 = 2+1= 0011
4 = 0100
5 = 4+1 = 0101
6 = 4+2 = 0110
7 = 4+2+1 = 0111
8 = 1000
9 = 8+1 = 1001
10 = 8+2 = 1010
11 = 8+2+1 = 1011
12 = 8+4 = 1100
13 = 8+4+1 = 1101
14 = 8+4+2 = 1110
15 = 8+4+2+1 = 1111.
Para números acima de 15, precisamos de um código binário de 5 dígitos, já que o próximo número, 16, é na verdade 24. Deu pra notar até onde podemos ir aqui?
Na semana que vem eu vou mostrar como o código binário de 8 dígitos é utilizado na computação.
Assim, da próxima vez que você não conseguir dormir e tiver que contar ovelhinhas, agora pode fazer em binário.
Até a próxima!

Mapa do Labirinto