Hardware e o
Sistema Binário
Grosso modo: tudo o que não é
software.
–
Hardware: relacionado com os
componentes do computador.
Fronteira entre hardware e
software: difusa
Hardware: eletricidade
liga / desliga: sistema binário
1 / 23
Sistema Binário
Proposto por Leibniz (sec.XVII)
Linguagem reconhecida pelo
computador
Alfabeto: {0, 1}
Léxico: {0 | 1}*
Sintaxe e Semântica: definidas pela
arquitetura do computador
2 / 23
Linguagem Binária
Apenas dois símbolos
–
Exemplo de expressões
–
0 e 1
102, 11012, 12, 02
Qual é o significado dessas
expressões?
–
Depende do contexto da computação.
3 / 23
Gap Semântico
Há um abismo entre a linguagem
humana e a linguagem binária.
As linguagens de alto nível
minimizam o abismo.
Contudo, ainda assim, temos de
entender o sistema binário.
–
Importante para programar
corretamente.
4 / 23
Entendendo o Sistema
Binário
O sistema binário possui apenas 2
símbolos.
–
Sistema decimal: 10 símbolos.
Como representar uma quantidade
maior que a quantidade de símbolos?
–
Precisaremos de uma combinação de
símbolos.
5 / 23
Como representar o número
201 em decimal?
Usamos os símbolos 2, 0 e 1.
Observem a ordem dos símbolos.
–
Convém lembrar:
Os símbolos estão posicionados
conforme sua respectiva casa
decimal.
201 = 2*102 + 0*10 + 1*100
O mesmo raciocínio vale para
qualquer sistema numérico.
6 / 23
Como escrever um número
binário?
Usamos apenas os símbolos 0 e 1.
–
–
Os símbolos devem estar
posicionados conforme sua
respectiva casa decimal.
11012
Mas o que significa o número 11012?
–
Fica mais fácil de entender quando
convertemos o número binário para o
decimal correspondente.
7 / 23
Convertendo Binário para
Decimal
Convém lembrar:
253 = 2*102 + 5*10 + 3*100
Então:
11012 = 1*23 + 1*22 + 0*2 + 1*20 = 1310
8 / 23
Convertendo
Decimal para Binário
Como escrever 45 na linguagem
binária?
leia
n
faça
resto = n % 2
imprima resto
n = n / 2 // divisão inteira
enquanto n > 0
imprima ”leia os bits da dir para esq”
9 / 23
Como Representar
Números Negativos?
O bit + significativo indica se o
número é positivo ou negativo.
0 → positivo
1 → negativo
Quais números são negativos?
102
1102
10112
1012
Depende da quantidade de bits!
10 / 23
Números Negativos
Duas abordagens:
Sinal-Magnitude
Complemento de Dois
11 / 23
Sinal-Magnitude
O bit + significativo indica o
sinal.
Os demais bits compõem o número.
Exemplos (considere apenas 3 bits)
Binário
Dec
1
0
1
-1
0
0
1
1
1
1
1
-3
0
1
1
3
Como representar o zero?
1002
000
2
12 / 23
Complemento de Dois
O bit + significativo indica o
sinal.
Todos os bits compõem o número.
Exemplos (considere apenas 3 bits)
Binário
Dec
1
0
1
-3
0
0
1
1
1
1
1
-1
0
1
1
3
Como obter um número
negativo em
Complemento de Dois?
13 / 23
Complemento de Dois
Positivo → Negativo
1) Tome um número positivo
2) Inverta os bits desse número
3) Some 1 ao número obtido no passo 2
Exemplo (considere apenas 3 bits)
1) 0112
2) 1002
3) 1002 + 12 = 1012
Qual é o maior número
positivo em 5 bits?
E qual é o menor?
14 / 23
S-M vs C2
C2 é mais usado atualmente.
Um número a mais com a mesma
quantidade de bits do que S-M.
Apenas uma representação para o zero.
•
Circuitos lógicos mais simples.
Bits
Menor
Maior
8
-128
127
16
-32768
32767
32
-2147483648
2147483647
64
-9223372036854775808
9223372036854775807
15 / 23
HEX
DEC
0
0
Sistema Hexadecimal
Alfabeto = {0, 1, 2, 3, 4, 5,
6, 7, 8, 9, A, B, C, D, E, F}
Surgiu na IBM.
Facilita a expressão de
números binários.
Cada símbolo
corresponde a 4 bits.
BIN
0000
1
1
0001
2
2
0010
3
3
0011
4
4
0100
5
5
0101
6
6
0110
7
7
0111
8
8
1000
9
9
1001
A
10
1010
B
11
1011
C
12
1100
D
13
1101
E
14
111016 / 23
F
15
1111
Hex → Bin → Hex
Hex → Bin
1) Tome um número hex
2) Da dir. para esq.
Cada algarismo deve ser convertido para o
correspondente binário (4 bits)
Bin → Hex
1) Tome um número bin
2) Da dir. para esq.
Cada 4 bits, devem ser convertidos para o
algarismo hex correspondente
17 / 23
Hex → Dec → Hex
Hex → Dec
1A516 = 1*162 + 10*16 + 5*160 = 42110
Dec → Hex
Idem Dec → Bin
−
Substitua 2 por 16
18 / 23
Operações Lógicas
AND
OR
0
0
0
0
0
0
0
1
0
0
1
1
1
0
0
1
0
1
1
1
1
1
1
1
19 / 23
Operações Lógicas
XOR
NOT
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
20 / 23
Operações Aritméticas
SOMA
SOMA
SOMA
1
0
12
0
0
12
1
0
12
0
0
12
0
0
12
0
1
12
1
1
02
0
1
02
0
0
02
1
21 / 23
Operações Aritméticas
E a subtração?
Faça uma soma com um número negativo.
As demais operações podem ser
definidas em função da soma e
subtração.
22 / 23
Referências
BROOKSHEAR, J. Glenn. Ciência da
Computação: uma visão abrangente
Capítulo 1
Capítulo 2
23 / 23