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
Download

SLIDES_4_Sistemas_Numeracao).