Sistemas Posicionais O sistema posicional é utilizado devido à facilidade com a qual é possível fazer cálculos Sistemas de Numeração Tente encontrar um algoritmo para multiplicar, em numeração romana, XVIII por XIXIII! 103 102 101 100 1 9 2 6 Sistemas Informáticos 1 ---- 2005/2006 (c) Paulo Marques 1926 = 1x103 + 9x102 + 2x101 + 6x100 SLIDES 4 Sistemas Posicionais (2) Sistema de numeração de base 10: Existem 10 algarismos diferentes (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) O valor de cada posição i é dado pelo valor nessa posição vezes um factor de escala basei Para calcular o valor de um número representado numa base radix: Representação Digital Informação Os computadores armazenam e processam toda a informação em formato digital Texto, imagens, áudio, vídeo, programas,… Toda a informação tem que ser dividida em partes, sendo cada uma delas representada por números binários (0s e 1s). (An-1 An-2 An-3... A0)radix Faz-se: 01000110 01110110 01000111 .... An-1⋅radixn-1 + An-2⋅radixn-2 + An-3⋅radixn-3 + ... + A0⋅radix0 1 Nos sistemas informáticos Internamente, tudo é feito em base 2, i.e. BINÁRIO Existem dois símbolos: 0 e 1 (ligado/desligado, verdadeiro/falso) Cada símbolo é um bit (binary digit) No entanto, em termos de representações, tipicamente utiliza-se: Binário (base 2) Hexadecimal (base 16) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F ... e algumas vezes Octal (base 8) Contar em hexadecimal 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 => => => => => => => => => => => => => => => => => => (0)10 (1)10 (2)10 (3)10 (4)10 (5)10 (6)10 (7)10 (8)10 (9)10 (10)10 (11)10 (12)10 (13)10 (14)10 (15)10 (16)10 (17)10 Contar em binário 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 => => => => => => => => => => => => => => => => (0)10 (1)10 (2)10 (3)10 (4)10 (5)10 (6)10 (7)10 (8)10 (9)10 (10)10 (11)10 (12)10 (13)10 (14)10 (15)10 Representação Binária Cada bit que se adiciona duplica o número de combinações possíveis. N bits permitem representar 2N itens distintos 1 bit 21 = 2 itens 2 bits 22 = 4 itens 3 bits 23 = 8 itens 4 bits 24 = 16 itens 5 bits 25 = 32 itens 7 bits 27 = 128 itens 8 bits 28 = 256 itens 2 Potências de 2... Contas com Bits... 23222120 210 29 28 27 26 25 24 23 1024 512 256 128 64 32 16 8 22 21 20 4 2 1 0 1 2 3 4 5 6 7 8 9 10 1 2 4 8 16 32 64 128 256 512 1024 Quiz: Conversão para decimal Converta para decimal os seguintes números: Pista: lembre-se do que é que “sistema posicional” e “base” querem dizer... (1101010)2 (C1B3)16 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 27262524 23222120 0101 0001 0110 1010 1001 1001 1100 0010 0111 0101 ? (A) ? ? (B) ? ? (C) ? ? (D) ? ? (E) ? Resposta ao Quiz (1101010)2 = 0⋅20 + 1⋅21 + 0⋅22 + 1⋅23 + 0⋅24 + 1⋅25 + 1⋅26 = 106 (na base 10) (C1B3)16 = 3⋅160 + 11⋅161 + 1⋅162 + 12⋅163 = 49587 (na base 10) 3 Conversão de decimal para outras bases Divide-se sucessivamente o número pela base O resto da divisão vai constituindo os sucessivos digitos do número Exemplo: Converter 402 em binário 402 ÷ 2 201 ÷ 2 100 ÷ 2 50 ÷ 2 25 ÷ 2 12 ÷ 2 6÷2 3÷2 1÷2 = 201 e resto 0 = 100 e resto 1 = 50 e resto 0 = 25 e resto 0 = 12 e resto 1 = 6 e resto 0 = 3 e resto 0 = 1 e resto 1 = 0 e resto 1 Conversão decimal-hexadecimal Exactamente o mesmo processo! Converter 402 em hexadecimal Converter 673 em hexadecimal 402 ÷ 16 = 25 e resto 2 25 ÷ 16 = 1 e resto 9 1 ÷ 16 = 0 e resto 1 (402)10 = (192)16 673 ÷ 16 = 42 e resto 1 42 ÷ 16 = 2 e resto 10 (A) 2 ÷ 16 = 0 e resto 2 (673)10 = (2A1)16 (402)10 = (110010010)2 Conversão binário-hexadecimal e vice-versa Como 16 é 24, isso quer dizer que cada digito em hexadecimal corresponde a 4 dígitos em binário, directamente! Exemplo: (110110010010)2 110110010010 D 9 2 Nota sobre o sistema hexadecimal Nos computadores (e livros), é comum utilizar as seguintes notações para representar números hexadecimais: 0xD92 D92h ou ou 0xd92 d92h 4 Memória Principal: RAM Memória Principal: RAM • A memória central é dividida num grande número de células de memória. • Cada célula tem um endereço que a identifica univocamente. • Cada dado é armazenado numa ou mais células de memória consecutivas. • Na maioria dos casos cada célula de memória tem capacidade para armazenar 8 bits ou 1 Byte • Um Byte serve para armazenar o código ASCII de uma letra. 10 11 12 13 14 15 16 17 endereços Capacidade da Memória Central • • Cada memória tem uma capacidade que é expressa no número de bytes que consegue armazenar. Para isso utilizam-se as seguintes unidades: Unidade Kilobyte Megabyte Gigabyte Terabyte Símbolo KB MB GB TB Nº de bytes 210 = 1024 220 (> 1 milhão) 230 (> 1 bilião) 240 (> 1 trilião) Um computador com 128Mbytes de RAM: tem 128 x 220 células de memória para armazenar dados ... 01011000 01100111 01110001 10111110 00110001 00001011 01100010 Valores grandes são armazenados em células de memória consecutivas ... 10101000 Armazenamento de dados Quantos bits são necessários para representar N números? Exemplo: quantos bits necessito para representar 100 objectos, ou para representar 100 números diferentes? (0..99) Sistema binário é um sistema posicional. Com K bits, tenho 2K números diferentes Para representar N elementos diferentes, são necessários log2(N) bits. Para representar 100 objectos, são necessários 7 bits! 5 Grandezas de armazenamento de informação bit: binary digit, unidade básica de informação byte: 8 bits Kbyte: 210 byte, i.e. 1024 bytes Mbyte: 210 Kbyte, i.e. 1024 Kbytes Gbyte: 210 Mbyte, i.e. 1024 Mbytes Tbyte: 210 Gbyte, i.e. 1024 Gbytes Quiz: Se eu quiser armazenar 20.000.000 números inteiros, cada número de 32 bits, quantos MByte preciso? Bytes, GBytes, TBytes... Bytes, KBytes, MBytes... Bytes (8 bits) 0.1 bytes: A binary decision 1 byte: A single character 10 bytes: A single word 100 bytes: A telegram Kilobyte (1020 bytes) 1 Kilobyte: A very short story 2 Kilobytes: A Typewritten page 10 Kilobytes: An Encyclopaedic page 100 Kilobytes: A low-resolution photograph Megabyte (1 048 576 bytes) 1 Megabyte: A 3.5 inch floppy disk 2 Megabytes: A high resolution photograph 5 Megabytes: The complete works of Shakespeare OR 30 seconds of TV-quality video 100 Megabytes: A two-volume Encyclopaedic book 500 Megabytes: A CD-ROM OR The hard disk of a PC Gigabyte (1 073 741 824 bytes) 1 Gigabyte: A symphony in high-fidelity sound OR A movie at TV quality 2 Gigabytes: 20 meters of shelved books 20 Gigabytes: A good collection of the works of Beethoven OR A VHS tape used for digital data 100 Gigabytes: A floor of academic journals Grandeza para transmição de informação Terabyte (1 099 511 627 776 bytes) 1 Terabyte: All the X-ray films in a large technological hospital 2 Terabytes: An academic research library 10 Terabytes: The printed collection of the US Library of Congress Petabyte (1 125 899 906 842 624 bytes) 2 Petabytes: All US academic research libraries 20 Petabytes: Production of hard-disk drives in 1995 200 Petabytes: All printed material Exabyte (1 152 921 504 606 846 976 bytes) 5 Exabytes: All words ever spoken by human beings. Zettabyte (1 000 000 000 000 000 000 000 bytes) Yottabyte (1 000 000 000 000 000 000 000 000 bytes) Largura-de-banda: 100Mbps 100Mbps = 100*1000*1000 bits/s = = 11.9 Mbyte/s Note-se que no caso de bps, K, M, G e T representam factores de 1000, não de 1024! 6 Palavras do computador Bit mais significativo e menos significativo Os registos do processador têm um certo tamanho em bits. Ao tamanho dos registos do processador chamase word ou palavra. Quando se diz que o Pentium 4 é um processador de 32 bits, quer dizer que este manipula internamente dados de 32 bits. Tipicamente também quer dizer que é capaz de gerar endereços de 32 bits. Quiz 1: Sabendo que o Pentium 4 endereça a memória usando 32 bits, qual é a memória máxima que um PC comum pode ter? 4 Gbytes! (232/1024/1024/1024) 110110010010 MSB (Most Significant Bit) LSB (Least Significant Bit) Quiz 2: Sabendo que os registos de dados do Pentium 4 são de 32 bits, qual é o número máximo (sem sinal), que se pode representar? 4294967295 (232-1) Máquinas big-endian & little-endian Imaginemos que um computador tem uma palavra de 16 bits. De que forma é que esta deverá ser armazenada em memória? MOV [1000], 0xff00 1001 1000 ff 00 Little-endian (e.g. Intel PC) 1001 1000 ?? Para saber mais... “Computer Science – An Overview” Capítulo 1.4 “The Essentials of Computer Organization and Architecture” Capítulo 2 (2.1 a 2.6.1) 00 ff Big-endian (e.g. Sun-Sparc, Network-byte-order) 7