Você está na página 1de 7

Como Nasceu a Linguagem dos Computadores

Agora que já fizemos uma pequena abordagem sobre a história e evolução dos computadores,
vamos tentar entender a origem da sua linguagem.
Há mais de um século atrás George Boole determinou que era possível através das leis do
pensamento criar expressões que resolveriam todos os problemas de Álgebra através da Lógica. Era
a dualidade verdadeiro/falso normalmente anotada como 1/0 respetivamente, que substituía as
habituais variáveis numéricas e as operações de adição e multiplicação pelas operações lógicas de
conjunção (AND), disjunção (OR) e negação (NOT).
Boole não imaginava que um século depois da criação da sua Lógica, Claude Shannon demonstraria
que era possível recriar a abstração matemática da Álgebra de Boole através de circuitos elétricos e
interruptores (relés) que eram ligados e desligados para formar os circuitos necessários.
De uma maneira geral, a Álgebra de Boole substituía as variáveis numéricas da Álgebra tradicional
pela dualidade verdadeiro/falso, normalmente anotada como 1 e 0. Assim, 1 e 0 são os dígitos
necessários para resolver todas as expressões da Lógica Proposicional e consequentemente todos os
problemas Matemáticos. Portanto essa será a Linguagem dos computadores, uma vez que os
computadores foram criados para executar as expressões da Lógica Proposicional.

O Vocabulário do Computador
Para o computador, em cada ponto possível de análise, temos sempre apenas duas opções possíveis.
Ligado ou desligado, com ou sem tensão. Esta é a realidade física no computador. Vamos agora
levar este conceito para o campo da abstração do raciocínio lógico e matemático humano. A
dualidade absoluta representada pelo conceito físico ligado/desligado, corresponde em raciocínio
lógico à dualidade verdadeiro/falso quanto ao valor de uma afirmação, a que atribuímos o valor
correspondente “1 ou 0”. Este é o único vocabulário de que dispomos para falarmos com os
computadores: os algarismos, 1 ou 0.
Façamos agora uma pequena introdução ao conceito dos sistemas numéricos posicionais, nos quais
se insere aquele em que nós humanos entendemos, que é o sistema decimal ou de base 10.

Sistemas Numéricos Posicionais


Vamos começar definindo, de forma muito básica, alguns conceitos importantes:
1. Um número, é uma forma de representar uma quantidade de qualquer coisa.
2. Um algarismo, é um número de um só dígito que vai de 0 até ao valor anterior à base em que
se insere. No caso da base 10 são os algarismos de 0 a 9, exatamente os 10 algarismos
disponíveis para representar números na Base 10.
3. A base é a quantidade de algarismos de que dispomos para representar um número. Por
exemplo, na base 10 são 10 (0 a 9).
4. Um sistema numérico, é uma forma sistemática de representar números.
Agora podemos definir o sistema numérico posicional como sendo uma forma sistemática de
representar números que se baseia no valor de cada algarismo (sempre inferior ao da base) e na
sua posição na representação do número (conjunto de algarismos).
Sistema Decimal
O sistema de numeração decimal é de base 10, ou seja utiliza 10 algarismos (símbolos) diferentes
para representar todos os números.
Formado pelos algarismos 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, é um sistema posicional, ou seja, a posição do
algarismo no número modifica o seu valor.
É o sistema de numeração que nós usamos. Ele foi concebido pelos hindus e divulgado no ocidente
pelos árabes, por isso, é também chamado de "sistema de numeração indo-arábico".

Evolução do sistema de numeração decimal

Características
• Possui símbolos diferentes para representar quantidades de 1 a 9 e um símbolo para
representar a ausência de quantidade (zero).
• Como é um sistema posicional, mesmo tendo poucos símbolos, é possível representar todos
os números.
• As quantidades são agrupadas de 10 em 10, e recebem as seguintes denominações:
10 unidades = 1 dezena
10 dezenas = 1 centena
10 centenas = 1 unidade de milhar, e assim por diante
Exemplos
Sistema binário
O sistema binário ou de base 2 é um sistema de numeração posicional em que todas as quantidades
se representam com base em dois números, ou seja, zero e um (0 e 1).
Os computadores digitais trabalham internamente com dois níveis de tensão, pelo que o seu sistema
de numeração natural é o sistema binário. Com efeito, num sistema simples como este é possível
simplificar o cálculo, com o auxílio da lógica booleana. Em computação, chama-se um dígito
binário (0 ou 1) de bit, que vem do inglês Binary Digit. Um agrupamento de 8 bits corresponde a
um byte (Binary Term). Um agrupamento de 4 bits, ainda, é chamado de nibble.
Um processador é formado por milhares de blocos lógicos complexos, formados por portas lógicas
básicas, e o funcionamento destas está amparado por um postulado fundamental à eletrônica digital
que determina que um circuito opere apenas com dois níveis de tensão bem definidos. Em um
circuito digital TTL (Transistor Transistor Logic), os dois níveis de tensão padronizados são 0V
(zero volt) e 5V (cinco volts). Ao projetar um sistema digital, ao invés de trabalhar com níveis de
tensão trabalha-se com níveis lógicos, então, no caso do circuito TTL, 0V será representado por “0”
e 5V será representado por “1”, e os níveis de tensão entre eles serão ignorados, ou seja, adotar-se-á
uma faixa até a qual será considerado nível lógico zero, e a partir dela, nível lógico 1. Neste caso,
de 0V a 2,5V temos “0”, e a partir daí até 5V temos “1”.
O sistema binário é base para a Álgebra booleana (de George Boole — matemático inglês), que
permite fazer operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim ou
não, verdadeiro ou falso, tudo ou nada, ligado ou desligado, 1 ou 0). Toda a eletrônica digital e
computação estão baseadas nesse sistema binário e na lógica de Boole, que permite representar por
circuitos eletrônicos digitais (portas lógicas) os números, caracteres, realizar operações lógicas e
aritméticas. Os programas de computadores são codificados sob forma binária e armazenados nas
mídias (memórias, discos, etc) sob esse formato. Assim, para informação armazenada na memória
RAM do computador, o formato será de voltagem mais alta (1) ou mais baixa (0). Em discos
magnéticos a binariedade se dará por diferença de polaridade, positiva ou negativa.

Como converter decimal para binário?


Para converter um número decimal para binário, basta realizar divisões sucessivas do número
decimal por 2 (base do sistema binário) e verificar se essa divisão possui resto ou não. Se não
possuir, o valor é 0.

Exemplos: Converter o número 29 do sistema decimal para binário:

Resultado: 29 Decimal = 11101 Binário


Converter o número 10 do sistema decimal para binário:

Resultado: 10 Decimal = 1010 Binário

Como converter binário para decimal?


Para converter um número binário para decimal, basta multiplicar cada bit pelo seu valor de posição
e somar os resultados.

Exemplos
Converter o número 1101 do sistema binário para decimal:

Binário 1 1 0 1
Valor de Posição 2³ 2² 2¹ 2º
Cálculo 1 x 2³ = 8 1 x 2² = 4 0 x 2¹ = 0 1 x 2º = 1
Valor Final 8 + 4 + 0 + 1 = 13 (Decimal)

Converter o número 1111 do sistema binário para decimal:

Binário 1 1 1 1
Valor de Posição 2³ 2² 2¹ 2º
Cálculo 1 x 2³ = 8 1 x 2² = 4 1 x 2¹ = 2 1 x 2º = 1
Valor Final 8 + 4 + 2 + 1 = 15 (Decimal)

Sistema hexadecimal

Sistema hexadecimal, ou sistema numérico posicional de base 16, utiliza 16 algarismos para sua
representação. Isso porque, após o decimal 9 escolheram-se símbolos alfanuméricos (A, B, C, D, E,
F) para representarem os algarismos que faltavam.
Conversão de hexadecimal para decimal
A conversão de hexadecimal para decimal segue o mesmo princípio apresentado para o sistema
binário. Multiplica-se cada dígito pela potência de 16 relativa à posição e somam-se os resultados:
Por exemplo, a conversão do número 12Chex para decimal:

Hexadecimal 1 2 C

1 x 162 2 X 161 12 X 160


Valor da posição
256 32 12

Resultado 256 + 32 + 12 = 300 decimal

Conversão de decimal para hexadecimal


Para converter um número decimal em hexadecimal realiza-se a divisão sucessiva por 16 (base do
sistema hexadecimal), semelhante à conversão de decimal para binário.
Por exemplo, vamos converter o número 438 em hexadecimal:

O resultado é lido da direita para a esquerda a partir do último quociente. Assim. 438 é igual a
1B6hex.

Note que o resto da segunda divisão foi o número 11, que corresponde ao número B em
Hexadecimal.
O Código ASCII

Como os computadores só entendem números, 0’s e 1’s, a primeira preocupação dos


programadores foi encontrar um código representativo de todas as letras do nosso alfabeto, dos
números, de comandos essenciais do teclado e de pontuação e símbolos especiais.
Assim, foi proposto um código inicialmente aceito na América e rapidamente estendido a todo o
mundo chamado código ASCII (American Standard Code for Information Interchange que se traduz
por “Código Americano Standard para a Troca de Informações”), que representa 256 caracteres
possíveis, através da combinação de 8 bits.
O código ASCII tem o seguinte modo de representação:
• Os códigos 0 a 31, caracteres não imprimíveis, eram caracteres de controle porque
representavam ações normalmente contidas no teclado.
• Os códigos 65 a 90, representam as maiúsculas
• Os códigos 97 a 122, representam as minúsculas
• O restante, representam numeração, pontuação e símbolos diversos
Este código atribui os valores 0 a 255, por conseguinte codificados em 8 bits, quer dizer, 1 byte. A
parte estendida do código ASCII não é única e depende da plataforma (língua ou região) em que é
utilizada.
Foi a partir daqui que nasceu o conceito de Byte, correspondente a um conjunto de 8 bits e que
passou a constituir a unidade básica de informação.
Byte

A codificação padronizada de Byte foi definida como sendo de 8 bits. Um Byte, é um dos tipos de
dados integrais em computação. É usado com frequência para especificar o tamanho ou quantidade
da memória ou da capacidade de armazenamento de um computador, independentemente do tipo de
dados armazenados. Para um computador, representar 256 números binários é suficiente. Por isso,
os bytes possuem 8 bits, que como já vimos atrás representam 256 combinações possíveis que vão
de 00000000 (0 em decimal) a 11111111 (255 em decimal).
A partir do byte a contagem é feita em relação a 1024, ou seja, 1024bytes, correspondem a 1 KB
(kilobyte). E agora segue assim por diante:
1 Byte = 8 bits
1 kilobyte (kB ou Kbytes) = 1024 bytes
1 megabyte (MB ou Mbytes) = 1024 kilobytes
1 gigabyte (GB ou Gbytes) = 1024 megabytes
1 terabyte (TB ou Tbytes) = 1024 gigabytes
1 petabyte (PB ou Pbytes) = 1024 terabytes
1 exabyte (EB ou Ebytes) = 1024 petabytes
1 zettabyte (ZBou Zbytes) = 1024 exabytes
1 yottabyte (YB ou Ybytes) = 1024 zettabytes.
Observações
• O k usado em "quilo", em unidades como quilômetro (km) e quilograma (kg), deve ser
grafado em letra minúscula. É errado escrevê-lo em maiúscula.
• Em informática, os símbolos "K", "M", "G" que podem preceder as unidades bits e bytes,
provavelmente não se referem ao fator multiplicativo 1000, mas sim a 1024 unidades da
grandeza citada. O uso desses prefixos se trata na verdade de uma incorreção, já que os
prefixos corretos seriam "Ki", "Mi", "Gi" (kibibyte, mebibyte, gibibyte, etc.).

Você também pode gostar