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
Download

Hardware e o Sistema Binário