Escolar Documentos
Profissional Documentos
Cultura Documentos
SistemasNumeracao
SistemasNumeracao
SistemasNumeracao
ÍNDICE
ÍNDICE _____________________________________________________________________ 2
1 Bits & Bytes _______________________________________________________________ 4
1.1 Bit ___________________________________________________________________ 4
1.2 Byte __________________________________________________________________ 4
1.3 Múltiplos do Byte _______________________________________________________ 7
2 Sistemas de Numeração _____________________________________________________ 8
2.1 Números ______________________________________________________________ 8
2.2 Base de um Sistema de Numeração _________________________________________ 8
2.3 Representação Binária ___________________________________________________ 8
2.4 Representação Octal e Hexadecimal _______________________________________ 10
2.4.1 Algumas questões típicas sobre sistemas de numeração ____________________ 12
3 Conversão de Números entre Bases Diferentes __________________________________ 13
3.1 Conversões entre as bases 2, 8 e 16 ________________________________________ 13
3.1.1 Conversão de Base.: Binária(Base 2) => Octal(Base 8) ______________________ 13
3.1.2 Conversão de Base.: Octal(Base 8) => Binária(Base 2) ______________________ 13
3.1.3 Conversão de Base.: Binária(Base 2) => Hexadecimal(Base 16) _______________ 13
3.1.4 Conversão de Base.: Hexadecimal(Base 16) => Binária(Base 2) _______________ 13
3.2 Outras conversões _____________________________________________________ 13
3.2.1 Conversão de Base.: Binário => Decimal _________________________________ 14
3.2.2 Conversão de Base.: Octal => Decimal ___________________________________ 14
3.2.3 Conversão de Base.: Hexadecimal => Decimal _____________________________ 14
3.2.4 Conversão de Base.: Base Qualquer => Decimal ___________________________ 15
3.3 Conversão de Números da Base 10 para uma Base b qualquer ___________________ 15
3.3.1 Parte Inteira: ______________________________________________________ 15
3.3.2 Parte Fraccionária __________________________________________________ 15
3.4 Conversão de Números entre duas Bases quaisquer ___________________________ 16
3.5 Exercícios Simples de Conversão de Números entre duas Bases __________________ 16
4 Aritmética Binária _________________________________________________________ 17
4.1 Adição _______________________________________________________________ 17
4.2 Subtracção ___________________________________________________________ 18
4.3 Multiplicação _________________________________________________________ 18
4.4 Divisão ______________________________________________________________ 19
4.5 Aritmética Binária Complementar _________________________________________ 20
4.5.1 Algoritmos para determinação do Complemento __________________________ 20
Bit é a menor unidade de informação que um computador pode processar. é um minúscula célula de informação dentro
da memória RAM. Se nesta pequena célula não há passagem de corrente eléctrica, o valor assumido é 0(zero). Se ali
está passando energia eléctrica, então o valor assumido é 1(um). Como visto, só existem dois estados possíveis para
um bit, desligado ou ligado.
1
1.2 Byte
Byte é a unidade de informação que consegue representar um caracter. É composto de oito bits. Caracter é qualquer
letra(maiúscula ou minúscula) letra, símbolo, ou caracteres gráficos especiais.
10110010
Existe dentro do microprocessador uma tabela de caracteres chamada de Tabela ASCII(leia-se asqui-i). Esta tabela
possui 256 posições. Porque 256? É o número máximo de combinações possíveis com 8 bits. Para cada uma dessas 256
posições, existe um caractere associado. Veja a Tabela ASCII e seus caracteres com seus códigos em decimal, octal e
hexadecimal, logo abaixo.
Kilobyte ou Kb corresponde a 1024 bytes. Porque 1024 e não 1000, como no caso do quilograma ou quilómetro? Devido
aos sistemas de numeração utilizados por nós e pelo computador. O sistema de o computador utiliza é o sistema
binário(2) e o que nós mais utilizamos é o decimal(10). Se pegarmos o número 2 e elevarmos a 10º potência,
chegaremos ao número acima. 210=1024. Megabyte ou Mb corresponde a 1024 Kb.
Gigabyte ou Gb corresponde a 1024 Mb.
Terabyte ou Tb corresponde a 1024 Gb.
Quadro Comparativo
10242 * 8
Mbyte 1 10241 10242
10243 * 8
Gbyte 1 10241 10242 10243
10244 * 8
Tbyte 1 10241 10242 10243 10244
2 Sistemas de Numeração
2.1 Números
Acredita-se que a necessidade de criação de números veio com a necessidade de contar. Seja o número de animais,
alimentos, ou coisas do tipo. Como a evolução nos legou algumas características, como os cinco dedos em cada mão
(fingers) e cinco dedos em cada pé (toes), seria muito natural que os primeiros sistemas de numeração fizessem uso
das bases 10 (decimal) e 20 (vigesimal). O número 80, em francês, escrito como quatre-vingt (ou, quatro vezes o vinte)
é remanescente de um sistema vigesimal.
O método ao qual estamos acostumados usa um sistema de numeração posicional. Isso significa que a posição ocupada
por cada algarismo em um número altera o seu valor de uma potência de 10(na base 10), para cada casa à esquerda.
Por exemplo, no sistema decimal(base 10), no número 125 o algarismo 1 representa uma centena(100 = 102), o
algarismo 2 representa duas dezenas(2 x 10 = 101) e o algarismo 5 representa cinco unidades(5 x 100). Somando: 100 +
20 + 5 = 125. Vamos estudar neste capítulo, algo sobre os sistemas de numeração mais usados na informática.
Generalizando, representamos uma quantidade N qualquer, numa dada base b, com um número tal como segue:
Nb = an.bn + .... + a2.b2 + a1.b1 + a0.b0 + a-1.b-1 + a-2.b-2 + .... + a-n.b-n sendo que an.bn + ....
+ a2.b2 + a1.b1 + a0.b0 é a parte inteira e a-1.b-1 + a-2.b-2 + .... + a-n.b-n é a parte
fraccionária.
Intuitivamente, sabemos que o maior número que podemos representar, com n algarismos, na base b, será o número
composto n vezes pelo maior algarismo disponível naquela base (ou seja, b-1). Por exemplo, o maior número que pode
ser representado na base 10 usando 3 algarismos será 999 (ou seja, 103 - 1 = 999).
Generalizando, podemos ver que o maior número inteiro N que pode ser representado, em uma dada base b, com n
algarismos (n "casas"), será N = bn - 1. Assim, o maior número de 2 algarismos na base 16 será FF 16 que, na base 10,
equivale a 25510 = 162 - 1.
Os computadores modernos utilizam apenas o sistema binário, isto é, todas as informações armazenadas ou
processadas no computador usam apenas DUAS grandezas, representadas pelos algarismos 0 e 1. Essa decisão de
projecto deve-se à maior facilidade de representação interna no computador, que é obtida através de dois diferentes
níveis de tensão. Havendo apenas dois algarismos, portanto dígitos binários, o elemento mínimo de informação nos
computadores foi apelidado de bit (uma contracção do inglês inary digit).
Na base 2, o número "10" vale dois. Mas se 102 = 210, então dez é igual a dois?
Não, dez não é e nunca será igual a dois!
Em projectos de informática (isto é, nos trabalhos realizados pelos programadores, analistas e engenheiros de
sistemas), é usual representar quantidades usando sistemas em potências do binário (octal e principalmente
hexadecimal), para reduzir o número de algarismos da representação e consequentemente facilitar a compreensão da
grandeza e evitar erros. No sistema octal (base 8), cada três bits são representados por apenas um algarismo octal (de
0 a 7). No sistema hexadecimal (base 16), cada quatro bits são representados por apenas um algarismo hexadecimal
(de 0 a F).
A seguir, apresentamos uma tabela com os números em decimal e sua representação correspondente em binário, octal
e hexadecimal:
Binária(2) Octal(8) Decimal(10) Hexadecimal(16)
0 0 0 0
1 1 1 1
10 2 2 2
11 3 3 3
100 4 4 4
101 5 5 5
110 6 6 6
111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F
10000 20 16 10
10001 21 17 11
10010 22 18 12
10011 23 19 13
10100 24 20 14
10101 25 21 15
10110 26 22 16
10111 27 23 17
11000 30 24 18
Nota: a base 16 ou sistema hexadecimal pode ser indicada também por um "H" ou "h" após o número; por exemplo:
FFH significa que o número FF (ou 255 em decimal) está em hexadecimal. Não confundir o "H" ou "h" com mais um
dígito, mesmo porque em hexadecimal só temos algarismos até "F" e portanto não existe um algarismo "H".
Exemplo: Como seria a representação do número 1610 em binário, octal e hexadecimal?
Solução: Seria respectivamente 100002, 208 e 1016.
As conversões mais simples são as que envolvem bases que são potências entre si.
Vamos agora exercitar outras conversões. Quanto seria 3F5h(h = Base 16) em octal? O método mais prático seria
converter para binário e em seguida para octal.
Sabemos que 12
= 18 ; 1112 = 78 ; 1102 = 68 ; 1012 = 58 Portanto
17658 3F516 = 11111101012 = 17658
Professor cieslak Pág. 13
Representação de Dados e Sistemas de Numeração
3.2.1 Conversão de Base.: Binário => Decimal
A primeira operação que iremos realizar de conversão entre bases é a de Binária(Base 2) para Decimal(Base 10).
Tomemos um número Binário qualquer, por exemplo.: 10101011. Faremos então o seguinte:
128 64 32 16 8 4 2 1
(1 * 1) + (1 * 2) + (0 * 4) + (1 * 8) + (0 * 16) + (1 * 32) + (0 * 64) + (1 * 128) =
27 26 25 24 23 22 21 20 = 1 + 2 + 8 + 32 + 128 = 169
Solução: Uma base b dispõe dos algarismos entre 0 e (b-1). Assim, a base 16 dispõe dos algarismos 0 a F e portanto o
símbolo G não pertence à representação hexadecimal. d) Converter 1001,012 para a base 10.
Solução: 1x23 + 0x22 + 0x21 + 1x20 + 0x2-1 + 1x2-2 = 8 + 0 + 0 + 1 + 0 + 0,25 = 9,2510 e) Converter 34,35
Solução: Uma base b dispõe dos algarismos entre 0 e (b-1). Assim, a base 8 dispõe dos algarismos 0 a
7 e portanto o algarismo 8 não existe nessa base. A representação 38,3 não existe na base 8.
A conversão de números da base dez para uma base qualquer emprega algoritmos que serão o inverso dos acima
apresentados. Os algoritmos serão melhor entendidos pelo exemplo que por uma descrição formal. Vamos a seguir
apresentar os algoritmos para a parte inteira e para a parte fraccionária:
Para converter números de uma base b para uma outra base b’ quaisquer (isso é, que não sejam os casos particulares
anteriormente estudados), o processo prático utilizado é converter da base b dada para a base 10 e depois da base 10
para a base b’ pedida.
Exemplo: Converter 435 para Base 9.
435 = (4 x 5 + 3)10 = 2310 ==> 23/9 = 2 (resto 5) logo 435 = 2310 = 259
4 Aritmética Binária
4.1 Adição
A "tabuada" da soma aritmética no sistema de numeração binário é muito simples. São poucas regras:
0+0 =0
0 +1 =1
1 +0 =1
1 + 1 = 0 (e "vai um" p/ o dígito de ordem superior)
1 + 1 + 1 = 1 (e "vai um" p/ o dígito de ordem superior)
Exemplo:
Efectuar 011100 + 011010
Obs.: 1) Lembre-se: soma-se as colunas da direita para a esquerda, tal como uma soma em decimal. Obs.: 2) No
exemplo, são usadas, em sequência, da direita para a esquerda, todas as regas acima.
Obs.: 3) Na primeira linha, em azul, é indicado o "vai um".
Professor cieslak Pág. 17
Representação de Dados e Sistemas de Numeração
Obs.: 4) Por simplicidade, no exemplo estamos a considerar dois números positivos.
Exemplo:
11 => "vai um"
011100
+ 011010
---------
= 110110
4.2 Subtracção
Vamos ver agora a "tabuada" da subtracção no sistema de numeração binário. São poucas
regras:
0-0=0
0 - 1 = 1 (e "vem um" do dígito de ordem superior)
1 -0=1
1-1=0
Obs.: Como é impossível tirar 1 de zero, o artifício é "pedir emprestado" 1 da casa de ordem superior. Ou seja, na
realidade o que se faz é subtrair 1 de 10 e encontramos 1 como resultado, devendo então subtrair 1 do dígito de ordem
superior (aquele 1 que se "pediu emprestado"). Vamos lembrar que esse algoritmo é exactamente o mesmo da
subtracção em decimal a que já estamos acostumados desde o curso primário.
Exemplo:
Efectuar 111100 - 011010
Obs.: 1) Lembre-se: subtrai-se as colunas da direita para a esquerda, tal como uma subtracção em decimal.
Obs.: 2) No exemplo, são usadas, em sequência, da direita para a esquerda, todas as regras acima.
Obs.: 3) Na primeira linha, em vermelho, é indicado o "vem um".
Obs.: 4) Por simplicidade, no exemplo estamos considerando os dois números positivos. Exemplo:
02 => "vem um"
111100
- 011010
---------
= 100010
4.3 Multiplicação
Vamos ver agora a "tabuada" da multiplicação no sistema de numeração binário. São poucas regras:
0*0=0
0 *1=0
1 *0=0
1*1=1
Obs.: Vamos lembrar que esse algoritmo é exactamente o mesmo na multiplicação em decimal a que já estamos
acostumados desde o curso primário.
Exemplo:
Efectuar 101101 * 10
Obs.: 1) Lembre-se: multiplica-se as colunas da direita para a esquerda, tal como uma multiplicação em decimal.
Obs.: 2) No exemplo, são usadas, em sequência, da direita para a esquerda, todas as regras acima.
Professor cieslak Pág. 18
Representação de Dados e Sistemas de Numeração
Obs.: 3) Por simplicidade, no exemplo estamos considerando os dois números positivos. Exemplo:
101101
* 10
---------
= 000000 Todo número multiplicado por zero dá zero.
101101+
---------
1011010
Faça a prova real. Converta os dois números (101101 e 10) para decimal e multiplique-os. Converta o resultado
(1011010) para decimal também e compare os resultados.
4.4 Divisão
Para fazermos a divisão binária, devemos proceder da seguinte maneira: Subtrair o Divisor do Dividendo até obtermos
resto = 0 ou até o resto não pode ser mais subtraído do divisor. Exemplo: 1011012 / 112 ou 18210 / 310
101101
-11
101010 (1)
-11
100111 (2)
-11
100100 (3)
-11
100001 (4)
-11
11110 (5)
-11
11011 (6)
-11
11000 (7)
-11
10101 (8)
-11
10010 (9)
-11
1111 (10)
-11
1100 (11)
-11
1001 (12)
-11
110 (13)
-11
11 (14)
-11
0 (15)
O Resultado portanto é 15 (11112) e o resto é 0.
17314 | 194
+----------
1552 8 9 , 2 4 7 . . . . .
----
1794
1746
----
480
388
----
920
776
----
1440
1358
----
82
Vamos converter agora, 89,247... p/ Hexadecimal. 89,24710 = 59,nnn16
Assim como a multiplicação pode ser feita através de somas sucessivas, a divisão pode ser obtida através de subtracções
sucessivas. A divisão será feita com essas subtracções sucessivas até obtermos um resultado zero na subtracção. Veja
o exemplo de como dividir 10000 por 1000.
5 Representação de Dados
Em um computador são armazenados e processados apenas dados e instruções. Um programa de computador é
formado por uma sequência de instruções que operam sobre um conjunto de dados (os dados são os operandos das
instruções - ver capítulo sobre Representação de Instruções). Um computador executa operações sobre dados
numéricos (os números) ou alfabéticos (letras e símbolos). Por outro lado, um computador somente opera sobre
valores representados em notação binária, isto é, somente "entende" bits - uns e zeros. Assim, os dados precisam ser
representados no computador (na memória e no processador) sempre através de bits, de uma forma que o computador
possa interpretar correctamente o seu significado e executar as operações adequadas.
Em outras palavras, isso significa que é preciso definir uma forma de representar os dados, codificados em uns e zeros,
que possam ser interpretados pelo computador, de forma correcta e eficiente (com bom desempenho e pouco
consumo de memória).