Representac¸ ˜ao de Dados e Sistemas de Numerac¸ ˜ao
• Sistema de numeração decimal e números decimais (base 10) • Sistema de numeração binário e números binários (base 2)
• Conversão entre binário e decimal
• Sistema de numeração hexadecimal e números hexadecimais (base 16)
• Conversão entre hexadecimal e outras bases
• Números octais (base 8)
• Representação de números reais em binário • Operações aritméticas com números binários:
• Soma, subtração, multiplicação e divisão
• Complemento a 1 e complemento a 2 de números binários • Números binários com sinal
• Operações aritméticas com números binários com sinal
N ´
umeros Bin ´arios com Sinal
• Número com sinal:
• Pode ser positivo ou negativo
• Formas de representação de números binários com sinal:
• Sinal-magnitude • Complemento a 1
Sinal-magnitude
• Representação:
• Bit mais a esquerda: bit de sinal
• Representa se número é positivo ou negativo:
• Bit de sinal 0 ⇒ positivo • Bit de sinal 1 ⇒ negativo
• Demais bits: representam valor absoluto do número (magnitude)
• Exemplo: Números de 8 bits
• 25
10 = 0 0 0 1 1 0 0 12
↑
-bit de sinal magnitude
↓ .
• –25
10 = 1 0 0 1 1 0 0 12
• Observação:
Complemento a 1
• Representação:
• Número negativo:
• Representado pelo complemento a 1 do número positivo correspondente
• Bit mais a esquerda: bit de sinal
• Exemplo: Números de 8 bits
• 25 10 = 0 0 0 1 1 0 0 12 ↑ bit de sinal ↓ • –25 10 = 1 1 1 0 0 1 1 02 ⇐= complemento a 1 de 2510 • Observações:
• Sinal e magnitude não são representados separados • 2 representações para 0
10: 00000000 e 11111111 ⇒
Complemento a 2
• Representação:
• Número negativo:
• Representado pelo complemento a 2 do número positivo correspondente
• Bit mais a esquerda: bit de sinal
• Exemplo: Números de 8 bits
• 25 10 = 0 0 0 1 1 0 0 12 ↑ bit de sinal ↓ • –25 10 = 1 1 1 0 0 1 1 12 ⇐= complemento a 2 de 2510 • Observações:
• Sinal e magnitude não são representados separados • Adequado para realização de operações aritméticas ⇒
Forma utilizada nos computadores
Exemplo: Complemento a 2
• Número de 4 bits:0
10=
0000
2Complemento a 2 de 0000
2=
+1
10=
0001
2Complemento a 2 de 0001
2=
–1
10=
1111
2Complemento a 2 de 1111
2=
Contagem em Bin ´ario sem e com Sinal: N ´
umeros de 2 bits
Decimal Binário Decimal Binário
sem sinal com sinal
0 0 0 –2 1 0
1 0 1 –1 1 1
2 1 0 0 0 0
Contagem em Bin ´ario sem e com Sinal: N ´
umeros de 3 bits
Decimal Binário sem sinal Decimal Binário com sinal
0 0 0 0 –4 1 0 0 1 0 0 1 –3 1 0 1 2 0 1 0 –2 1 1 0 3 0 1 1 –1 1 1 1 4 1 0 0 0 0 0 0 5 1 0 1 +1 0 0 1 6 1 1 0 +2 0 1 0 7 1 1 1 +3 0 1 1
Contagem em Bin ´ario sem e com Sinal: N ´
umeros de 4 bits
Decimal Binário sem sinal Decimal Binário com sinal
0 0 0 0 0 –8 1 0 0 0 1 0 0 0 1 –7 1 0 0 1 2 0 0 1 0 –6 1 0 1 0 3 0 0 1 1 –5 1 0 1 1 4 0 1 0 0 –4 1 1 0 0 5 0 1 0 1 –3 1 1 0 1 6 0 1 1 0 –2 1 1 1 0 7 0 1 1 1 –1 1 1 1 1 8 1 0 0 0 0 0 0 0 0 9 1 0 0 1 +1 0 0 0 1 10 1 0 1 0 +2 0 0 1 0 11 1 0 1 1 +3 0 0 1 1 12 1 1 0 0 +4 0 1 0 0 13 1 1 0 1 +5 0 1 0 1 14 1 1 1 0 +6 0 1 1 0 15 1 1 1 1 +7 0 1 1 1
Sistema de Numerac¸ ˜ao Bin ´ario
• Exemplo: Com 4 bits
• Representa 24 = 16 valores diferentes • Números sem sinal: 0 a 15
• Números com sinal: –8 a +7
• Com n bits:
• Representa 2n valores diferentes • Números sem sinal: 0 a 2n − 1
• Números com sinal: −(2n−1) a +(2n−1 − 1)
• Exemplo: Com n = 5 bits
• Representa valores diferentes
• Números sem sinal: a
Convers ˜ao de N ´
umero Bin ´ario com Sinal para Decimal
• Bit de sinal tem peso negativo • Exemplos: Números de 8 bits
0 1 0 1 0 1 1 0
2 = = (0 × (−27)) + (1 × 26) + (1 × 24) + (1 × 22) + (1 × 21) = (0 × (−128)) + (1 × 64) + (1 × 16) + (1 × 4) + (1 × 2) = 0 + 64 + 16 + 4 + 2 = +86101 0 1 0 1 0 1 0
2 = = (1 × (−27)) + (0 × 26) + (1 × 25) + (1 × 23) + (1 × 21) = (1 × (−128)) + (1 × 32) + (1 × 8) + (1 × 2) = −128 + 32 + 8 + 2 = −8610Convers ˜ao de N ´
umero Bin ´ario com Sinal para Decimal
• Exemplo: Números de 8 bits
Operac¸ ˜
oes Aritm ´eticas com N ´
umeros Bin ´arios com Sinal
• Números binários com sinal:
• Representados com complemento a 2 ⇒
Adequado para realização de operações aritméticas
• Operações aritméticas de números binários com sinal:
• Adição:
• Realizada da mesma forma que adição de números sem sinal
• Subtração:
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Realizada da mesma forma que adição de números sem sinal • Exemplo: Números de 8 bits
• Caso 1: Ambas parcelas positivas ⇒ Soma positiva
1
0
0
0
0
0
1
1
1
7
+ 0
0
0
0
0
1
0
0
+
4
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
• Caso 2: Parcela positiva com valor absoluto maior que parcela negativa
⇒ Soma positiva
1 1
1
1
1
1
1
0
0
0
0
1
1
1
1
1 5
+ 1
1
1
1
1
0
1
0
+ – 6
0
0
0
0
1
0
0
1
9
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
• Caso 3: Parcela negativa com valor absoluto maior que parcela positiva
⇒ Soma negativa
0
0
0
1
0
0
0
0
1 6
+ 1
1
1
0
1
0
0
0
+ – 2 4
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
• Caso 4: Ambas parcelas negativas ⇒ Soma negativa
1 1
1
1
1
1
1
1
1
1
1
1
1
0
1
1
– 5
+ 1
1
1
1
0
1
1
1
+
– 9
1
1
1
1
0
0
1
0
– 1 4
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
Adic¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Overflow (transbordo):
• Ocorre quando resultado da operação aritmética
não pode ser representado nos bits da palavra
• Atenção: Overflow 6= Carry no bit mais significativo • Na adição, overflow ocorre quando:
• Ambas parcelas positivas e soma fica negativa • Ambas parcelas negativas e soma fica positiva
• Exemplo: Números de 4 bits com sinal
1
1
0
1
1
0
6
Subtrac¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo:
• (+9) – (+6) = (+9) + (–6)
• Ideia:
• Realizar subtração através da adição
• Obtém complemento a 2 do segundo operando e soma
• Exemplo: Números de 8 bits
(+8) – (+3) = (+8) + (–3) = 5
0 0 0 0 0 0 1 1
= +3
1 1 1 1 1 1 0 0
+
1
1 1 1 1 1 1 0 1
= –3
1 1 1 1 1
0 0 0 0 1 0 0 0
+ 1 1 1 1 1 1 0 1
0 0 0 0 0 1 0 1
Descarta carry mais a esquerdaSubtrac¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
Subtrac¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
Subtrac¸ ˜ao de N ´
umeros Bin ´arios com Sinal
• Exemplo: Números de 8 bits
Representac¸ ˜ao de Dados Alfanum ´ericos
• Código alfanumérico:
• Usado para representar:
• Números • Letras • Símbolos • Comandos • ...
• Códigos alfanuméricos usados nos computadores:
• Código ASCII e extensões • Código Unicode
C ´
odigo ASCII
• ASCII: American Standard Code for Information Interchange • Esquema de codificação de caracteres
• Baseado na ordem das letras do alfabeto inglês • Usado para representar texto em:
• Computadores
• Equipamentos de comunicação • ...
• Cada caracter representado com 7 bits:
• 27 = 128 possíveis valores • Em geral, usa 1 byte (8 bits)
• Maioria dos esquemas de codificação de caracteres mais modernos:
• Baseados no ASCII
C ´
odigo ASCII – Caracteres de Controle
Valor
Nome Significado Valor Nome Significado
decimal decimal
00 NUL Null 16 DLE Data Link Escape
01 SOH Start of Header 17 DC1 Device Control 1
02 STX Start of Text 18 DC2 Device Control 2
03 ETX End of Text 19 DC3 Device Control 3
04 EOT End of Transmition 20 DC4 Device Control 4
05 ENQ Enquire 21 NAK Negative Acknowledgment
06 ACK Acknowledgment 22 SYN Synchronous Idle
07 BEL Bell 23 ETB End of Transmission Block
08 BS Backspace 24 CAN Cancel
09 HT Horizontal Tab 25 EM End of Medium
10 LF Line Feed 26 SUB Substitute
11 VT Vertical Tab 27 ESC Escape
12 FF Form Feed 28 FS File Separator
13 CR Carriage Return 29 GS Group Separator
14 SO Shift Out 30 RS Record Separator
C ´
odigo ASCII – S´ımbolos Gr ´aficos
Valor decimal Símbolo Valor decimal Símbolo Valor decimal Símbolo Valor decimal Símbolo Valor decimal Símbolo Valor decimal Símbolo
32 space 48 0 64 @ 80 P 96 ‘ 112 p 33 ! 49 1 65 A 81 Q 97 a 113 q 34 " 50 2 66 B 82 R 98 b 114 r 35 # 51 3 67 C 83 S 99 c 115 s 36 $ 52 4 68 D 84 T 100 d 116 t 37 % 53 5 69 E 85 U 101 e 117 u 38 & 54 6 70 F 86 V 102 f 118 v 39 ’ 55 7 71 G 87 W 103 g 119 w 40 ( 56 8 72 H 88 X 104 h 120 x 41 ) 57 9 73 I 89 Y 105 i 121 y 42 * 58 : 74 J 90 Z 106 j 122 z 43 + 59 ; 75 K 91 [ 107 k 123 { 44 , 60 < 76 L 92 \ 108 l 124 | 45 - 61 = 77 M 93 ] 109 m 125 } 46 . 62 > 78 N 94 ˆ 110 n 126 ˜ 47 / 63 ? 79 O 95 _ 111 o 127 Del
Exemplo: C ´
odigo ASCII
• Texto:
Digite a senha:
• Representação em ASCII:
Extens ˜
oes do C ´
odigo ASCII
• Esquemas de codificação de caracteres • Baseados no código ASCII
• Cada caracter representado com 8 bits:
• 28 = 256 possíveis valores
• Codificação:
• Inclui 128 caracteres ASCII
• Possui outros 128 caracteres usados para representar:
• Letras de outros idiomas • Símbolos de moedas • Letras gregas
• Símbolos matemáticos • ...
C ´
odigo Unicode
• Padrão de representação de caracteres
• Pode ser implementado por diferentes esquemas de codificação de caracteres • Representa:
• Alfabetos de diferentes idiomas
• Suporte para línguas escritas em direções diferentes
• Cada caracter representado com 1 a 4 bytes • Inclui 128 caracteres ASCII