sistemas numéricos e representação de dadossistemas numéricos e representação de dados heitor...

63
+ Sistemas Numéricos e Representação de Dados Heitor S. Ramos

Upload: others

Post on 09-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+

Sistemas Numéricos e

Representação de Dados

Heitor S. Ramos

Page 2: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+História

Na Síria, durante o século VI, fundaram-se centros de culturagrega que se reuniam exclusivamente para discutir cultura e arte grega.

Em 662 d.C., o bisco Severus Seborkt exaltou a sabedoria de outros povos, citando o exemplo dos novos métodos de cálculoutilizados pelos hindus e que até então empregam 9 sinais.

O algarismo zero ainda não havia chegado ao Ocidente. O hindus introduziram uma posição vazia no final do século VI quesó chegou a Europa alguns séculos depois.

Com a introdução do zero, o Sistema de numeração utilizado pornós até hoje estava pronto e era chamado de algarismos indo-arábicos.

Page 3: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+História (2)

Em 825 d. C., o sábio de Bagdá chamado al-Khowarizmi foi

encarregado de traduzir livros de matemática adquiridos da

Índia.

Durante esse trabalho ele se deparou com o Sistema de

numeração decimal. Ficou tão impressionado que decidiu

escrever um livro sobre esse sistema.

Através desse livro “A arte Hindu de Calcular” o mundo

tomou conhecimento do Sistema Decimal.

Page 4: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Bit, Byte, Caracter, Palavra

Nos computadores, apenas dois símbolos são utilizados. Através deles, todos os outros símbolos e algarimos podemser representados: os algarismos 0 e 1

Esses dois algarismos representam os únicos algarismos da base 2, também chamada de binária. Cada algarismos é um bit (binary digit)

O bit é a menor quantidade de informação que pode serarmazenada na memória do computador

O byte é uma unidade de informação constituído de oito bits

A palavra é uma unidade básica formada por um agrupamento de 32 bits

Page 5: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Base de um sistema de numeração

Historicamente existiram vários sistemas de numeração com bases diferentes

Os babilônios adotaram um Sistema de numeração com base 60. Esse Sistema é utilizado até hoje na medida de ângulos e tempos.

Acredita-se que o primeiro Sistema foi o decimal, ou base dez, em decorrência da quantidade de dedos na mão do homem

Em regra, qualquer número inteiro maior ou igual a 1 pode serutilizado como base

Na computação, os Sistemas mais comuns são o binário, oshexadecimais e os octais

Page 6: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Polinômio de um Sistema de

numeração

Todo número escrito em um Sistema de numeração de base

“b” pode ser representado segundo:

A =

𝑖=0

𝑛−1

𝑎𝑖𝑏𝑖 = 𝑎0𝑏

0 + 𝑎1𝑏1 +⋯+ 𝑎𝑛−2𝑏

𝑛−2 + 𝑎𝑛−1𝑏𝑛−1

Ex:

32610 = 6 × 100 + 2 × 101 + 3 × 102 = 6 + 20 + 300

Page 7: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Sistema decimal

Usa os algarismos 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9

Cada dez unidades equivale a uma unidade da ordem

imediatamente superior

Qualquer algarismos escrito a esquerda de um outro ale dez

vezes mais

O Sistema é o mais utilizado pelas pessoas, portanto vamos

utilizá-lo como referência. Qualquer número escrito em base

diferente de 10 será explicitamente indicado como:

31716, 1101012, 5538

Page 8: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Sistema binário

Apenas dois algarismos (0, 1)

Polinômio característico:

A =

𝑖=0

𝑛−1

𝑎𝑖2𝑖

Sistema mais utilizado por computadores

Ex:

11010012 = 1 × 26 + 1 × 25 + 0 × 24 + 1 × 23 + 0 × 22 + 1 × 20

11010012 = 10510

Page 9: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Sistema Hexadecimal

Ou base 16, equivale aos aogarismos de 0 a 15, ou seja, 0, 1,

2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F

A=10, B=11, C=12, D=13, E=14 e F=15

Polinônio característico:

A =

𝑖=0

𝑛−1

𝑎𝑖16𝑖

Ex:

3𝐵𝐹4𝐶16 = 3 × 164 + 𝐵 × 163 + 𝐹 × 162 + 4 × 161 + 𝐶 × 160

3𝐵𝐹4𝐶16 = 24558010

Page 10: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Sistema Octal

Possui os algarismos entre 0 e 7: 0, 1, 2, 3, 4, 5, 6, 7

Polinômio característico:

A =

𝑖=0

𝑛−1

𝑎𝑖8𝑖

Ex:

546218 = 5 × 84 + 4 × 83 + 6 × 82 + 2 × 81 + 1 × 80 = 2292910

Page 11: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Código binário puro e variantes

Todos os códigos existentes são variantes do código binário

puro

Principais códigos:

Designação Quantidade de

Informação

Binário Variável

Binário Decimal BCD 6 bits

EBCDIC 8 bits

ASCII 8 bits

Page 12: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Código Binário Decimal (BCD)

Variação do código binário puro, sendo mais fácil de

interpretar

Ex: 7543𝐵𝐶𝐷

Quatro bits representam qualquer algarismo, porém, o BCD

pode comportar até 6 bits, os 2 bits adicionais representam

as letras A e B

0111 0101 0100 0011

7 5 4 3

B A 8 4 2 1

Zona Parte Numérica

Page 13: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Extended Binary Coded Decimal

Interchange Code (BCDIC)

Código que era utilizado em plataformas de grande porte da

IBM, tendo como padrão 8 bits na configuração do byte

No código EBCIDC os bits são numerados dentro do byte de

zero a sete, da esquerda para a direita

Os bits de zero a três constituem a zona, e os de quarto a sete

a parte numérica

Page 14: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+American National Standard Code For

Information Interchange (ASCII)

Page 15: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Mudança de Base Matemáticas

Mudança da base 10 para qualquer base “b”

Envolve uma sucessão de divisões do número inicial pela

base “b” até obtermos um quociente menor que a base

Nesse instante, escreve-se o número solicitado começando

com o ultimo quociente e com os sucessivos restos, da direita

para a esquerda

Page 16: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Mudança da base 10 para binário

61 2

1 30 2

0 15 2

1 7 2

1 3 2

1 1

6110 = 1111012

Page 17: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Mudança de base de 10 para base

8 (octal)

61 8

5 7

6110 = 758

Page 18: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Mudança da base 10 para a base

16 (hexadecimal)

61 16

13 3

6110 = 3𝐷16

Page 19: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Mudança de qualquer base para

10

Sucessão de multiplicações da direita para a esquerda, do

número inicial pela base “b”, elevando a base a partir de

zero, e incromentando-a de um em um.

Page 20: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Mudança da base Hexadecimal

para Decimal

F 4 B 2 A 5

5 × 160 = 5

10 × 161 = 160

2 × 162 = 512

11 × 163 = 45056

4 × 164 = 262144

15 × 165 = 15728640

1603651710

Page 21: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exercícios:

7502458 → ? 10

11010011112 → ? 10

4A3F16 → ? 10

Page 22: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Operações Aritiméticas com

Diversas Bases

Para soma de números binários, devemos obedecer às

seguintes regras:

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0 e vai 1

Ex: 100011010111 + 1101001001 =?

Page 23: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Subtração de binários

Para a subtração de números binários, devemos prosseguir

da seguinte maneira:

0 − 0 = 0

1 − 1 = 0

1 − 0 = 1

0 − 1 = 1 e empresta 1

Ex: 100011010111 − 1101001001 =?

Page 24: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Soma de hexadecimais

Para a soma na base hexadecimal, devemos respeitar da

mesma maneira que na base decimal, o limite do algarismo,

o qual não pode ultrapassar o valor máximo que é F(1510), aumentando em uma unidade o algarismo antecessor.

Ex: 𝐵𝐶7 + 34𝐵 =?

Page 25: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Subtração de Hexadecimais

Para a subtração devemos observer a regra de emprestar “1”

do próximo algarismo, o que na realidade significa o

empréstimo de 16, ou seja, o máximo do algarismo na base

16.

Ex: 3𝐷𝐴 − 37 =?

Ex2: 548 − 24𝐴 =?

Page 26: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Soma de Octais

Para a soma na base octal devemos respeitar, ada mesma

maneira que na base decimal, o limite do algarismo, o qual

não poderá ultrapassar o valor máximo que é 7, aumentando

em uma unidade o algarismo antecessor.

Ex: 1573 + 2236 =?

Page 27: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Subtração de Octais

Para subtração de octais, devemos observer a regra de

emprestar “1” do próximo algarismo, o que na realidade

significa o empréstimo de 8, ou seja, o máximo do algarismo

na base 8.

Ex: 377 − 37 =?

Ex2: 546 − 247 =?

Page 28: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exercícios (em classe – 1 ponto na

prova)

Faça as seguintes conversões de base:

17543810 para as bases 2, 8 e 16

𝐹3𝐵57𝐶16 para as bases 2, 8 e 10

6045238 para as bases 2, 10 e 16

11010101001112 para as bases 8, 10 e 16

Resolva as seguintes operações:

𝐹𝐵47𝐶16 + 𝐶𝐴02416

9𝐴𝐹2𝐶16 + 169210

375610 + 635458

11010102 + 𝐹4𝐵16

38𝐹216 − 776358

Page 29: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Representação de números

inteiros (ℕ)

Como representar números inteiros positivos e negativos?

Representação sinal-magnitude

O bit mais significativo da palavra é um bite de sinal (0 -> positivo, 1-> negativo)

Ex: +18 = 00010010

Ex2: −18 = 10010010

𝐴 = 𝑖=0𝑛−22𝑖𝑎𝑖 , se an−1 = 0

− 𝑖=0𝑛−2 2𝑖𝑎𝑖 , se an−1 = 1

Essa notação, apesar e simples, apresenta diversas desvantagens.

Para efetuar adição e subtração precisa considerer tanto sinal quantomagnitude

Existem 2 representações para 0:

+0 = 00000000

−0 = 10000000

Page 30: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Representação em complemento

de dois

usa o bit mais significativo como bit de sinal.

Faixa de valores representáveis −2𝑛−1a 2𝑛−1 − 1

Representações para o zero 1

Negação Pegue o complement booleano

de cada bit do número positivo

correspondente e some 1 ao

padrão de bits resultantes

Expansão do número de bits Acrescente posições de bit à

esquerda e preencha esses bits

com o bit de sinal

Regra de overflow Se dois números com mesmo

sinal forem somados, ocorrerá

overflow apenas se o resultado

tiver sinal oposto

Regra da subtração 𝐴 − 𝐵 = (Compl. de 2 𝐵) + 𝐴

Page 31: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Complemento de dois

𝐴 = −2𝑛−1𝑎𝑛−1 +

𝑖=0

𝑛−2

2𝑖𝑎𝑖

Números negativos representáveis: de −1 a − 2𝑛−1

Números positivos representáveis: de 0 a 2𝑛−1 − 1

Page 32: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Benefícios

Apenas uma representação para o algarismo zero

Facilita as operações aritméticas (vamos ver isso daqui a

pouco)

A negação é simples

3 = 00000011

Complemento booleano gera: 11111100

Adiciona 1 11111101

Page 33: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Interpretação Geométrica

Page 34: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Negação Caso Especial 1

0 = 00000000

Bit a bit not 11111111

Adiciona 1 to LSB +1

Resultado 1 00000000

Overflow is ignored, so:

- 0 = 0

Page 35: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Negação Caso Especial 2

-128 = 10000000

Bit a bit not 01111111

Adiciona 1 to LSB +1

Resultado 10000000

Então:

-(-128) = -128 X

Page 36: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Números possíveis de representar

8 bit complemento de 2

+127 = 01111111 = 27 -1

-128 = 10000000 = -27

16 bit complemento de 2

+32767 = 011111111 11111111 = 215 - 1

-32768 = 100000000 00000000 = -215

Page 37: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Conversão de tamanho

Para números positivos, adiciona-se zero a esquerda

+18 = 00010010

+18 = 00000000 00010010

Para números negativos, adiciona-se 1 a esquerda

-18 = 10010010

-18 = 11111111 10010010

Page 38: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Adição e subtração

Adição binária convencional

Monitora-se o bit de sinal para detectar overflow

Toma-se o complement de dois do subtraendo e soma ao

minuendo

i.e. a - b = a + (-b)

Então só precisamos de circuitos e adição e complemento de

2

Page 39: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Hardware para adição e subtração

Page 40: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exemplos de adição de números

representado em complemento de 2

1001 + 0101

1100 + 0100

0011 + 0100

1100 + 1111

0101 + 0100

1001 + 1010

Page 41: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exemplos de adição de números

representado em complement de 2

0010 − 1011

0101 − 0010

1011 − 0010

0101 − 1110

0111 − 1001

1010 − 0100

Page 42: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Multiplicação

1011 Multiplicando (11 dec)

x 1101 Multiplicador (13 dec)

1011

0000

1011

1011

10001111 resultado (143 dec)

Obs: o resultado tem o dobro do tamanho

Page 43: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Multiplicação de inteiros sem sinal

Page 44: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exemplo

Page 45: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Fluxograma da multiplicação de

inteiros sem sinal

Page 46: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Multiplicação de inteiros

considerando o sinal

O algoritmo anterior não funciona!

Solução1

Converta o número para positivo (caso necessário)

Multiplique com o algoritmo anterior

Se os sinais forem diferentes, tome a negação da resposta

Solução 2

Algoritmo de Booth

Page 47: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Algoritmo de Booth

Page 48: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Example do Algorítimo de Booth

Page 49: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Números reais

Número com frações

Pode ser resolvido com binário puro

1001.1010 = 24 + 20 + 2−1 + 2−3 = 9,625

Onde é o ponto de separação?

Fixo?

Muito limitado

Móvel?

Como sabemos onde ele está?

Page 50: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Ponto Flutuante

±Mantissa × 2±E

O expoente é polarizado (soma-se a polarização (2𝑘−1−1))

A mantissa é normalizada na forma:

±1, bbb…b × 2±E

Isso implica que o bit mais à esquerda da mantissa é sempre 1

Não precise armazená-lo (bit implícito)

O campo de 23 bits é utilizado para armazenar uma mantissa de 24 bits com valor entre 0.5 e 1

O número de números representados continua sendo 232

Bit

de

sin

al

Expoente

Polarizado Significando ou Mantissa

23 bits8bits1bit

Page 51: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Examplo de Ponto Flutuante

Page 52: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exemplo

−9,510= ?

Sinal negativo → 1

9,5 para binário → 1001,1

deslocamos a vírgula → 1,0011 ∗ 2³

agora que temos o expoente 3, devemos normalizá-lo → 3 +127 = 130

Em binário temos 3 = 11 e 127 = 1111111, somando os dois temos → 10000010

Resultado: 1 10000010 00110000000000000000000

Page 53: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Números que podem ser

expressados

x x x x

Page 54: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Densidade de números

Page 55: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Precisão vs Representatividade

Se aumentarmos o número de bits do expoente, expandimos

a faixa de valores representáveis

Se aumentarmos o número de bits da mantissa, aumentamos

a precisão

Para aumentar o alcance e a precisão, precisamos aumentar

o número total de bits

Page 56: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+IEEE 754

Padrão para representação de ponto flutuante

32 e 64 bit (simples e dupla precisão)

8 e11 bit de expoente, respectivamente

Suporta formato estendido tanto para mantissa quanto para

expoente para armazenar resultados intermediários

Page 57: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+IEEE 754 Formats

Page 58: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Manipulação de Bits

Operadores Lógicos: or (||), and (&&) e not (!)

Tratam qualquer argumento diferente de zero como true e igual a

zero com false

Retornam 1 ou 0 (true , false)

Exemplos:

Expressão Resultado

!0x41 0x00

!0x00 0x01

0xaa && 0x55 0x01

0xaa || 0x55 0x01

Page 59: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Operadores bit a bit

Manipulação de dados bastante comum

Podem ser aplicados a qualquer dos tipos inteiros

Char, short, int, long

Baseados na algebra booleana (bit a bit)

And (A & B) Or (A | B)

Not (~A) Xor (A ^ B)

& 0 1

0 0 0

1 0 1

| 0 1

0 0 1

1 1 1

^ 0 1

0 0 1

1 1 0

&

0 1

1 0

Page 60: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exemplos (C)

unsigned short a,b,c;

a = 0xFF00; /* a = 1111 1111 0000 0000

b = 0xA5A5; b = 1010 0101 1010 0101

c = a | b; /* c = ?

c = a & b; /c = ?

c = ~a; /* c = ?

c = a ^ b; /* c = ?

Page 61: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Exemplos (C)

Swap sem terceira variável

void troca (unsigned char x, unsigned char y)

{ /* 0x00000001 0x01000000

y = x ^ y; /* 0x00000001 0x01000001

x = x ^ y; /* 0x01000000 0x01000001

y = x ^ y; /* 0x01000000 0x00000001

}

Page 62: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Deslocamento de bits

Deslocamento de padrões de bits para a direita ou para a esquerda

x << n : shift para a esquerda (equivale a ∗ 2𝑛)

Bits a direita são preenchidos com zero

x >> n : shift para a direita (equivale a /2𝑛)

Shift lógico: bits à esquerda são preenchidos com 0

Shift aritmético: bits à esquerda são preencidos com o bit maissignificativo original (bit de sinal)

Quando o operando é sem sinal, o shift é lógico

Quando o operando é com sinal, tipo de shift é escolhido pelocompilador

A aplicação de >> a operandos com sinal não é portátil

Page 63: Sistemas Numéricos e Representação de DadosSistemas Numéricos e Representação de Dados Heitor S. Ramos + História ... Na computação, os Sistemas mais comuns são o binário,

+Deslocamento de bits: exemplos

Operação x=[01100011] x=[10010101]

x << 4 00110000 01010000

x >> 4 (lógico) 00000110 00001001

x >> 4 (aritmético) 00000110 11111001