Introdução à Informática Sistemas Numéricos e Armazenamento de dados Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Outubro de 2006 Sistema de base dez • O sistema de numeração que usamos no nosso dia a dia é o sistema de numeração decimal ou de base dez • Chama-se assim porque utiliza dez algarismos ou dígitos: 0, 1, ...9 • Isto não acontece por acaso, utilizamos dez dígitos porque temos dez dedos (em latim a palavra dígito significa dedo) Introdução à Informática Sistemas Numéricos 2 Sistemas Numéricos • Numa base b qualquer (b>1), um número inteiro positivo N é representado por: (N)b = an x bn + an-1 x bn-1 + ... + a1 x b1 + a0 x b0 • Dígitos: 0, ..., b-1 Introdução à Informática Sistemas Numéricos 3 Sistema Decimal • Base: 10 – Dígitos: 0,1,2,3,4,5,6,7,8,9 – Cada posição está associada a uma quantidade – Exemplo: • 452(10)= 4x102 + 5x101 + 2x100 • 98,76(10) = 9x101 + 8x100 + 7x10-1 + 6x10-2 • -5,4(10) = -5x100 - 4x10-1 Introdução à Informática Sistemas Numéricos 4 Sistema de base 2 • Um computador não têm dez dedos e, por isso não utiliza a base decimal • Um computador representa informação através de bits que podem armazenar um de dois valores: 0 e 1 • É natural, por isso, que os computadores utilizem o sistema de numeração binário ou de base dois, que também utiliza apenas dois dígitos: 0 e 1 Introdução à Informática Sistemas Numéricos 5 Sistema Binário • Base: 2 – Dígitos: 0,1 – Cada posição está associada a uma quantidade – Exemplo: • 101(2)=1*22 +0*21 + 1*20 = 5 (10) • 110(2) = 1 x 22 + 1 x 21 + 0 x 20 = 6(10) • 111(2) = 1 x 22 + 1 x 21 + 1 x 20 = 7(10) – Repare-se que a forma como construímos os números no sistema binário é idêntica à forma como o fazemos no sistema decimal, com a limitação de dispormos apenas dos dígitos 0 e 1 Introdução à Informática Sistemas Numéricos 6 Sistema Hexadecimal (1) • Base: 16 – Dígitos: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F – Cada posição está associada a uma quantidade – Exemplo: • 1B(16)=1*161 +11*160 = 27 (10) • Facilita a manipulação humana de longas sequências de bits • Os computadores armazenam sequências binárias em múltiplos de quatro • Um único símbolo representa 4 bits Introdução à Informática Sistemas Numéricos 7 Sistema Hexadecimal (2) • Converter de binário para hexadecimal: – 0110101011110010 – 111010000101010100010111 – 01001000 • Converter de hexadecimal para binário: – 5FD97 – 610A Introdução à Informática - ABCD - 0100 Sistemas Numéricos 8 Conversões • Conversão de um sistema numérico de base n para decimal: – Soma de potência de base n: • xyz(n)= x*n2 + y*n1 + z*n0=w(10) • Exemplo: 2 1 0 – 234(16)=2*16 + 3*16 + 4*16 = 564 (10) • Conversão do sistema numérico decimal para qualquer outro sistema numérico – Dividir o valor pelo valor da base, e guardar o resto – Enquanto o quociente for diferente de zero, dividir o novo quociente pelo valor da base e guardar o resto – Juntar todos os restos obtidos, desde o último até ao primeiro, para obter a representação do valor na nova base Introdução à Informática Sistemas Numéricos 9 Conversão Decimal-binário – Exemplo: • 26(10)=?(2) 26 |2 06 13 |2 0 1 6 |2 0 3 |2 1 1 |2 1 0 O resultado é 11010(2) Introdução à Informática Sistemas Numéricos 10 Exercícios • Qual a representação na base 10 do número 1110101(2)? • 1110101(2) = 26 + 25 + 24 + 22 + 20 = 64 + 32 + 16 + 4 + 1 = 117(10) • Qual a representação na base 10 do número -100,001(2)? • -100,001(2) = -22 – 2-3 = -4 – 1/8 = -4 0,125 = -4,125(10) Introdução à Informática Sistemas Numéricos 11 Adição binária (1) Introdução à Informática Sistemas Numéricos 12 Adição binária (2) • Qual o resultado da adição de 1101101(2) com 1100101(2)? – 1101101(2) + 1100101(2) = 11010010(2) 1101101 +1100101 11010010 Introdução à Informática Sistemas Numéricos 13 Fracções Binárias • Conversão para o sistema decimal (N)b = an x 2n + an-1 x 2n-1 + ... + a1 x 2 + a0 + a-1 x 2-1 + a-2 x 2-2 + ... 110.01 1*4+1*2+0*1+0*0,5+1*0,25 = 6,25 2-2 2-1 20 21 22 Introdução à Informática Sistemas Numéricos 14 Adição de fraccionários em base 2 • Colocar as partes inteira e decimal dos dois números alinhadas em relação ao “.” e fazer a adição normalmente Introdução à Informática Sistemas Numéricos 15 Complemento para dois • O bit mais à esquerda indica o sinal do número: – 0: positivos – 1: negativos • Representação dos negativos: nega-se bit a bit, e em seguida soma-se 1 Binário 011 010 001 000 111 110 101 100 Valor 3 2 1 0 -1 -2 -3 -4 Complemento para dois: Introdução à Informática Sistemas Numéricos 16 Representação de símbolos • Para podermos guardar num computador textos com letras, números, pontuação, etc, foi necessário criar codificações desses diferentes símbolos de forma a poderem ser univocamente representados • Um dos códigos mais utilizados pelos sistemas informáticos é o código ASCII (American Standard Code for Information Interchange) • O código ASCII (versão standard) representa todos os caracteres do alfabeto além de outros caracteres especiais, usando 7 bits (128 caracteres) para representar cada caracter • A tabela ASCII extendida utiliza 8 bits, o que permite representar até 256 caracteres – Contém duas partes distintas: • 1ª (primeiros 128 caracteres) - é igual em todas as versões. • 2ª (últimos 128 caracteres) - difere de país para país (ex: caracteres acentuados). Introdução à Informática Sistemas Numéricos 17 Tabela de ASCII 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 NUL (null) SOH (start of header) STX (start of text) ETX (end of text) EOT (end of transmission) ENQ (enquire) ACK (acknowledge) BEL (bell) BS (backspace) TAB LF (line feed) VT (vertical tab) FF (form feed) CR (carriage return) SO (shift out) SI (shift in) DLE (data link escape) DC1 (device control 1) DC2 (device control 2) DC3 (device control 3) DC4 (device control 4) NAK (negative acknowledge) SYN (synchronous idle) ETB (end of trans. block) CAN (cancel) EM (end of medium) SUB (substitute) ESC (escape) FS (file separator) GS (group separator) RS (record separator) US (unit separator) Introdução à Informática 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Espaço ! " # $ % & ' ( ) * + , . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 Sistemas Numéricos @ A B C D E F G H I J K L M N O P Q R S T U V W X y z [ \ ] ^ _ 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ DEL 18 Representação de caracteres =69(10) = 101(10) – Exemplo • Ola em ASCII 1001111 4F O Introdução à Informática 1101100 6C l 1100001 61 a Sistemas Numéricos 19 Unicode • Antes de o Unicode ser inventado, havia centenas de sistemas diferentes de codificação • Nenhum destes sistemas de codificação, no entanto, poderia conter caracteres suficientes: – por exemplo, a União Europeia por si só requer vários sistemas de codificação diferentes para cobrir todas a línguas • Estes sistemas de codificação são também conflituantes entre si – Por outras palavras, dois codificadores podem usar o mesmo número para dois caracteres diferentes ou usar números diferentes para o mesmo carácter • O Unicode fornece um único número para cada carácter, não importa a plataforma, não importa o programa, não importa a língua • Actualmente, o standard Unicode contém 34,168 caracteres distintos codificados Introdução à Informática Sistemas Numéricos 20 Portas lógicas • Circuitos electrónicos que realizam operações lógicas (Booleanas) sobre um conjunto de valores lógicos de entrada • Os computadores são construídos pela combinação de portas lógicas (chips) • Portas lógicas: – – – – AND OR XOR NOT Introdução à Informática Sistemas Numéricos 21 Conjunção (E / AND) Lógica Entradas 0 0 1 1 Introdução à Informática 0 1 0 1 Sistemas Numéricos Saída 0 0 0 1 22 Disjunção (OU / OR) Lógica Entradas 0 0 1 1 0 1 0 1 Introdução à Informática Saída 0 1 1 1 Sistemas Numéricos 23 Disjunção Exclusiva (XOR) Entradas 0 0 1 1 Introdução à Informática 0 1 0 1 Sistemas Numéricos Saída 0 1 1 0 24 Negação (NÃO / NOT) Lógica Entrada 0 1 Introdução à Informática Saída 1 0 Sistemas Numéricos 25 Flip-Flops • Circuito em que o valor de saída oscila entre dois valores mediante os valores de entrada introduzidos • Circuito que permite armazenar um bit • Saída constante se as entradas forem 0 • Saída passa a 1 se a entrada de cima passa a 1 • Saída passa a 0 se a entrada de baixo passa a 1 Introdução à Informática Sistemas Numéricos 26