Sistemas numéricos Prof. Leandro Tonietto Introdução a computação e suas aplicações Curso de Segurança da Informação UNISINOS ago-09
Introdução Tempos remotos... A necessidade de contar!! Animais, alimentos e etc. Estima-se que os primeiros sistemas de numeração faziam como base 10 (decimal) e 20 (vigesimal) Em função do número de dedos Curiosidade: 80 em francês é escrito quatre-vingt (4x20), remanescente de um sistema vigesimal. 27-ago-09 Leandro Tonietto 2
Introdução Tempos modernos... linguagens humanas usam letras para combinarem palavras e estruturas maiores, computadores não têm esta capacidade. Computadores usam sistema binário para representação de informações. Uma combinação de cargas elétricas (positivas/negativas) gera um código que representa uma informação: um número ou um caractere. Computadores só "pensam" com informações de dois dígitos (binárias): 0 e 1. Conceito: BIT: binary digit (0 ou 1) BYTE: grupo de 8 bits (binary term) 27-ago-09 Leandro Tonietto 3
Sistemas numéricos A escrita como ferramenta de comunicação Surgimento na Grécia e aperfeiçoamento na Roma (atual) Primeiros registros de "quantidades" sob forma escrita são atribuídos ao sistema de numeração indo-arábico (atual é derivado deste). 27-ago-09 Leandro Tonietto 4
Sistemas numéricos Conceito: Sistema de numeração [1]: "Um sistema de numeração é formado por um conjunto de símbolos utilizados para representação de quantidades (alfabeto) e as regras que definem a forma de representação." Por exemplo, no sistema decimal a base de contagem é 10, pois o alfabeto possui 10 símbolos: 0,1,2,3,4,5,6,7,8 e 9. A combinação destes números, seguindo uma regra, pode representar qualquer quantidade numérica. 27-ago-09 Leandro Tonietto 5
Tipos de sistemas numéricos Não posicionais São aqueles em que o valor atribuído a um símbolo não se altera, independentemente da posição em que ele se encontre no conjunto de símbolos que está representando um número. Sistema de numeração romano: Símbolos: I, V, X, L, C, D e M Não importa a posição: (I 1, V 5, X 10, L 50, C 100 e M 1000). Cada símbolo colocado à direita de um maior é adicionado a este. Ex.: XI 10 + 1 = 11 Cada símbolo colocado à esquerda de um maior tem o seu valor subtraído deste. Ex.: IX 10 1 = 9 27-ago-09 Leandro Tonietto 6
Tipos de sistemas numéricos Posicionais São aqueles em que o valor atribuído a um símbolo depende da posição em que ele se encontra no conjunto de símbolos que está representando um número. Exemplo do sistema decimal: O símbolo 1 pode representar o número um (1), o número 10 (na combinação 15), o número 100 (na combinação com 123). Portanto, dependendo da posição, o símbolo assume outro valor (ou quantidade) Quando mais a esquerda um símbolo está mais ele vale, a cada posição a esquerda ele vale 10x mais: 1, 10, 100, 1000,... 27-ago-09 Leandro Tonietto 7
Representação numérica Representação de quantidade no computador segue os sistemas de numeração tradicionais: binário, decimal, octal e hexadecimal. Todos posicionais. Representação de valores em sistemas numéricos segue a mesma regra apresentada para o sistema decimal. A cada incremento de posição à esquerda, o símbolo vale X vezes mais que o valor da posição anterior. Onde X é o número da base. Então, a cada posição a mais à direita, o símbolo vale X menos que o anterior. Exemplo de representação na base decimal. Número 245: 245 = 200 + 40 + 5 = 2*100 + 4*10 + 5*1 Valor da casa 1000 100 10 1 0,1 0,01 Dígitos 0 2 4 5 0 0 Valor posição 0 200 40 5,0 0 Como ficaria a representação numérica do 8763,25? 27-ago-09 Leandro Tonietto 8
Sistema binário Sistema usado pelo computador Base para a Álgebra booleana (de George Boole - matemático inglês), operações lógicas e aritméticas usando-se apenas dois dígitos ou dois estados (sim e não, falso e verdadeiro,...). Toda eletrônica digital e computação está baseada 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 [3]. Símbolos: 0 e 1 (ligado/desligado) Representação:... 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 1 + 2 0 + 2-1 +...... b 6 + b 5 + b 4 + b 3 + b 2 + b 1 + b 0 + b -1 +... b é 0 ou 1.... b4 b3 b2 b1 b0, b-1 b-2 Exemplo: O número binário 10011,01 representa a quantidade: 1*2 4 + 0*2 3 + 0*2 2 + 1*2 1 + 1*2 0 + 0*2-1 + 1*2-2 19,25 De acordo com a quantidade de dígitos sabe-se a quantidade de números que podem ser representados (variações possíveis) 2 bits = 4 valores = 2*2 = 2 2 3 bits = 8 valores = 2*2*2 = 2 3 27-ago-09 Leandro Tonietto 9
Sistema Hexadecimal Sistema binário é bom pro computador, para o programador não. Representação fica muito grande e a conversão se torna difícil de ser feita mentalmente. A cada 4 bits um símbolo. Por exemplo: 1111 = 15 (decimal) = F(hexa) Símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F É possível representar 16 símbolos: de 0 à 15. Representação:... 16 6 + 16 5 + 16 4 + 16 3 + 16 2 + 16 1 + 16 0 + 16-1 +... Exemplo: O número hexadecimal A17,B9 representa a quantidade: 10*16 2 + 1*16 1 + 7*16 0 + 11*16-1 + 9*2-2 Como ficaria o número em binário? 101000010111,10111001 b16 b10 27-ago-09 Leandro Tonietto 10 0 1 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
27-ago-09 Leandro Tonietto 11 Equivalência entre sistemas numéricos 1111 1110 1101 1100 1011 1010 1001 1000 111 110 101 100 11 10 1 0 b2 17 16 15 14 13 12 11 10 7 6 5 4 3 2 1 0 b8 b10 b16 15 F 14 E 13 D 12 C 11 B 10 A 9 9 8 8 7 7 6 6 5 5 4 4 3 3 2 2 1 1 0 0
Conversão de base Processamento e armazenamento Entrada e saída de dados Sistema binário Sistema decimal Sistema hexadecimal 27-ago-09 Leandro Tonietto 12
Binário para decimal Usar a idéia exposta na explicação do sistema binário Exemplo: (11001) 2 1*2 4 + 1*2 3 + 0*2 2 + 0*2 1 + 1*2 0 (25) 10 16 + 8 + 0 + 0 + 1 27-ago-09 Leandro Tonietto 13
Decimal para binário Mediante divisões inteiras sucessivas por dois, tomando-se os restos das divisões no sentido ascendente. Exemplo: (197) 10 = (11000101) 2 27-ago-09 Leandro Tonietto 14
Binário para hexadecimal Separar os bits em grupos de 4 bits, substituindo pelos símbolos hexadecimais. Exemplo: (11110001) 2 1111 0001 F 1 (F1) 16 (10010011) 2 1001 0011 9 3 (93) 16 (101011) 2????? 27-ago-09 Leandro Tonietto 15
Hexadecimal para binário Processo inverso. Exemplo: (A56B) 16 1010 0101 0110 1011 (1010010101101011) 2 27-ago-09 Leandro Tonietto 16
Hexadecimal para decimal Mesmo processo que conversão que de binário para decimal, porém com base 16. Exemplo: (A6B) 16 A*16 2 + 6*16 1 + B*16 0 10*16 2 + 6*16 1 + 11*16 0 2560 + 96 + 11 (2667) 10 27-ago-09 Leandro Tonietto 17
Decimal para Hexadecimal Mesmo processo que conversão que de decimal para binário, porém com divisor 16. Exemplo: Pegar os número n de forma ascendente e converter para o símbolo hexadecimal equivalente (2736) 10 = (AB0) 16 27-ago-09 Leandro Tonietto 18
Exercícios Converter base: decimal para binária: 12278,25 512 1,3555 3578,1 45454,45454 27-ago-09 Leandro Tonietto 19
Exercícios Converter base: decimal para hexadecimal: 12278 512 1024 255 45454 27-ago-09 Leandro Tonietto 20
Exercícios Converter base: hexadecimal para decimal: ABA1 AB16 DC DDE 45 15 123 27-ago-09 Leandro Tonietto 21
Exercícios Converter base: hexadecimal para binário: AB1 A1E DC DDE 45 15 183 27-ago-09 Leandro Tonietto 22
Exercícios Converter base: binário para hexadecimal: 110001111001 111110 1001010 101010100 1111000011110000 11011011011011 111 27-ago-09 Leandro Tonietto 23
Exercícios Converter base: binário para decimal: 110001111001 111110 1110111 101010101 1111000011110000 11011011011011 10001000 11111111 27-ago-09 Leandro Tonietto 24