Introdução à Computação: Sistemas de...

55
Introdução à Computação: Sistemas de Numeração Beatriz F. M. Souza ([email protected]) http://inf.ufes.br/~bfmartins/ Computer Science Department Federal University of Espírito Santo (Ufes), Vitória, ES Brazil 1

Transcript of Introdução à Computação: Sistemas de...

Introdução à

Computação: Sistemas

de Numeração

Beatriz F. M. Souza

([email protected])

http://inf.ufes.br/~bfmartins/

Computer Science Department

Federal University of Espírito Santo

(Ufes),

Vitória, ES – Brazil

1

História da Computação – Revisão

Aula Passada

• História da Computação;

2

Sistemas de Numeração – Introdução

• Sistemas de Numeração:

– O número é um conceito abstrato que representa a ideia de quantidade; portanto, é um conceito fundamental para a área de computação;

– Um sistema de numeração é o conjunto de símbolos utilizados para representar quantidades e as regras que definem a forma de representação;

3

Sistemas de Numeração – Introdução

• Sistemas de Numeração:

– Um sistema de numeração é determinado fundamentalmente pela Base, que indica a quantidade de símbolos e o valor de cada símbolo;

• Decimal (base 10):

– 0, 1, 2, 3, 4, 5, 6, 7, 8, 9;

• Binário (base 2):

– 0, 1;

• Octal (base 8):

– 0, 1, 2, 3, 4, 5, 6, 7, 8;

• Hexadecimal (base 16):

– 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F;

• Base B genérica:

– 0 a B – 1. 4

Sistemas de Numeração – Introdução

• Sistemas de Numeração:

– Em sistemas digitais, o sistema de numeração binário é o mais importante;

– Como usa apenas os símbolos 0 e 1, é mais fácil de ser representado por circuitos eletrônicos (presença ou não de tensão, chave aberta ou fechada, etc.);

– Os símbolos binários são denominados de Bits (Binary Digit);

– O conjunto de 8 bits é denominado de Byte;

– Palavras (Words) são grupos de Bytes;

5

Sistemas de Numeração – Introdução

• Sistemas de Numeração:

– Para a representação de números binários grandes utilizamos os sistemas de numeração octal e hexadecimal:

• 1100 0000 0000 00002 = 1400008 = A00016

– A base 10 é importante por ser a que manipulamos

– cotidianamente;

– A base 2 é útil por conta dos circuitos lógicos, porém documentar números grandes apenas com 0 e 1s é complicado;

– As bases 8 (octal) e 16 (hexadecimal) compactam siginificativamente a representação em binários.

6

Sistemas de Numeração – Notação

• Sistemas de Numeração (Notação Proposicional):

– Em um sistema numérico posicional de base r, um número D tem seu valor dado por:

– Onde:

• r : base do sistema;

• p : número de dígitos à esquerda da vírgula;

• n : número de dígitos à direita da vírgula.

– O valor de cada símbolo é determinado de acordo com a sua posição no número.

7

Sistemas de Numeração – Notação

• Sistemas de Numeração (Notação Proposicional):

2914,193

2 x 10³ + 9 x 10² + 1 x 10¹ + 1 x 10°+ 1 x 10¯¹ + 9 x 10¯² + 3 x 10¯³

8

Sistemas de Numeração – Notação

• Sistemas de Numeração (Notação Proposicional):

– Generalização para qualquer base:

• Seja “b” a base de representação de um número e A, B, C, D, E, os símbolos dos algarismos deste sistema;

• Então, por exemplo, o número EDCB na base “b”, escrito convencionalmente como .

EDCBb

Representa a grandeza E x b³ + D x b² + C x b¹ + B x b°

9

Sistemas de Numeração – Outras Bases

• Representação em outras bases:

– Algarismos Indo-arábicos, e se necessário letras ou outros símbolos, até (base – 1) ;

– Base diferentes símbolos usados repetidamente para contar;

– Ex. 1: Base 5;

0 1 2 3 4

V = ABC = A x b² + B x b¹ + C x b°

231 = 2 x 5² + 3 x 5¹ + 1 x 5°= 6610

10

Sistemas de Numeração – Outras Bases

• Soma, subtração, multiplicação e divisão em outras bases:

– Segue as mesmas regras:

– Mantém-se o elemento neutro zero;

– Mantém-se a não existência de divisão por zero;

– Estão mantidas as regras de transitividade e as propriedades intrínsecas dos valores representados pelos símbolos.

11

Sistemas de Numeração – Sistema Binário

• Sistema de Numeração Binário:

– O sistema binário, como sugere o nome, tem dois algarismos aos quais damos geralmente os símbolos 0 e 1;

– Eles correspondem a qualquer conjunto dual, como: não e sim; falso e verdadeiro; desligado e ligado; negativo e positivo, etc.;

– Nos circuitos lógicos, 0 e 1 representam respectivamente níveis de tensão baixa e alto ou estados de saturação e corte de transistores;

– Daí, uma outra designação comum: L e H (“Low and High levels”), baixo e alto níveis de tensão.

12

Sistemas de Numeração – Sistema Binário

• Sistema de Numeração Binário:

– MSB: “most significant bit” (bit mais significativo);

– LSB: “least significant bit” (bit menos significativo).

13

Sistemas de Numeração – Sistema Binário

• Sistema de Numeração Decimal versus Binário:

14

Sistemas de Numeração – Sistema Octal

• Sistema de Numeração Octal:

– Sistema de base 8;

– Contém 8 algarismos: 0, 1, 2, 3, 4, 5, 6 e 7;

– É utilizado por ser um sistema que tem relação direta com o sistema binário;

– Veremos esta relação quando tratarmos de transformação entre bases;

– Os valores posicionais são:

15

Sistemas de Numeração – Sist. Hexadecimal

• Sistema de Numeração Hexadecimal:

– Do hexa (6) e deci (10), sistema numérico de base 16;

– Possui 16 símbolos distintos em sua contagem;

– Além dos 10 dígitos (0 a 9), utiliza as letras A, B, C, D, E e F que fazem o papel das grandezas 10, 11, 12, 13, 14 e 15 respectivamente;

– Usamos as letras maiúsculas pela necessidade de termos que representar cada uma destas grandezas com um único algarismo;

– O sistema Hexadecimal é um sistema muito utilizado em computadores.

16

Sistemas de Numeração – Comparativo

• Representação comparativa:

17

Sistemas de Numeração – Conversão

• Conversão de Binário para Decimal:

– Devemos considerar os valores posicionais na base 2 e fazer a soma das potências dos bits em “1”;

– Ex. 2: 110112 = 2710

18

Sistemas de Numeração – Conversão

• Conversão de Octal para Decimal:

– Assim como fizemos no sistema binário também utilizamos os valores posicionais;

– Ex. 2: 3728 = 25010

– Ex. 3: 24,68 = 20,7510

19

Sistemas de Numeração – Conversão

20

• Conversão de Hexadecimal para Decimal:

– Assim como fizemos no sistema binário também utilizamos os valores posicionais;

– Ex. 4: 35616 = 85410

– Ex. 5: 2AF16 = 68710

Sistemas de Numeração – Conversão

• Conversão de base (r) qualquer para Decimal:

– Para converter de binário, octal ou hexadecimal para decimal, use o método da soma dos pesos de cada dígito (valor posicional).

21

Sistemas de Numeração – Conversão

• Conversão de Decimal para Binário:

– Há duas formas de converter o número decimal inteiro para o equivalente binário:

• A 1ª é fazer a soma das potências de 2, onde os bits “0” e “1” são colocados nos lugares apropriados;

22

Sistemas de Numeração – Conversão

• Conversão de Decimal para Binário:

– Há duas formas de converter o número decimal inteiro para o equivalente binário:

• A 2ª forma (mais mecânica) é utilizar as divisões sucessivas por 2, e a escrita de modo inverso dos restos de cada divisão até que o quociente 0 seja obtido.

23

Sistemas de Numeração – Conversão

• Conversão de Decimal para Octal:

– Também utiliza-se o método das divisões sucessivas, só que agora a base é 8.

26610 = 4128

24

Sistemas de Numeração – Conversão

• Conversão de Decimal para Hexadecimal:

– Da mesma forma utiliza-se o processo de divisões sucessivas;

25

Sistemas de Numeração – Conversão

• Conversão de Decimal para outras bases:

– Tomemos o seguinte exemplo: 91,610 -> x2;

– A parte inteira do número é convertida conforme o processo já demonstrado e obtemos assim o número é 1011011;

– A parte fracionária 0,6 é convertida da seguinte maneira:

• Multiplica-se a parte fracionária pela base “b” (neste caso 2) e separa-se a parte inteira do produto;

• O resultado obtido da subtração da parte inteira do produto passa a ser o próximo multiplicando;

• Faz-se sucessivamente esta operação até que consiga uma precisão satisfatória;

• Lê-se os algarismos separados de cima para baixo. 26

Sistemas de Numeração – Conversão

• Conversão de Decimal para outras bases:

– Ex. 6: 91,610 -> x2;

• Parte inteira:

91 = 1011011;

• Parte fracionária:

27

Sistemas de Numeração – Conversão

• Conversão de Decimal para outras bases:

– Lendo de cima para baixo teremos 10011, então 0,610 = 100112.

– Fazendo uma verificação, podemos ver que 0,100112 é igual a:

– Note que houve uma diferença de precisão na representação da grandeza nas diferentes bases.

28

Sistemas de Numeração – Conversão

• Conversão de Decimal para outras bases:

– Para a parte inteira:

• Divisões sucessivas por (b);

– Para a parte fracionária:

• Multiplicações sucessivas por (b).

29

Sistemas de Numeração – Conversão

• Conversão de Octal para Binário:

– A principal vantagem do sistema octal é a transcrição de cada dígito octal para binário, sem a necessidade de cálculos:

30

Sistemas de Numeração – Conversão

• Conversão de Hexadecimal para Binário:

– Assim como na conversão octal para binário, utilizamos a substituição de cada dígito hexadecimal para seu correspondente binário:

31

Sistemas de Numeração – Conversão

• Conversão de Binário para Hexadecimal:

– Análogo à conversão de Binário para Octal, só que agrupando 4 dígitos ao invés de 3.

32

Sistemas de Numeração – Conversão

• Conversão de Hexadecimal para Octal e Octal para Hexadecimal :

– Converter para Binário e depois para Octal ou Hexadecimal.

33

Sistemas de Numeração – Conversão

• Conversão de Binário para Octal:

– A conversão de números binários inteiros para octais inteiros se dá substituindo o conjunto de cada 3 binários pelo octal equivalente;

– Esta divisão deverá ser feita da direita (LSB) para esquerda (MSB); se faltar bits à esquerda preencher com zeros.

34

Sistemas de Numeração – Conversão

• Conversão:

– Por que não convertemos cada dígito diretamente de Decimal para Binário como no exemplo abaixo?

87410 = [1000][0111][0010]

Porque 10 não é potência de 2

35

Sistemas de Numeração – Conversão

• Resumo das Conversões:

– De binário, octal ou hexadecimal para decimal, use o método da soma dos pesos de cada dígito (valor posicional);

– De decimal para binário, octal ou hexadecimal, utilize o método das divisões/multiplicações sucessivas;

– De binário para octal ou hexadecimal, agrupe os bits da direita para esquerda e converta cada grupo;

– De octal ou hexadecimal para binário converta cada dígito em 3 (octal) ou 4 (hexadecimal) bits equivalentes;

– De octal para hexadecimal ou (vice-versa) utilize a conversão para binário, daí então faça a conversão desejada.

36

Sistemas de Numeração – Paralelo

Grandeza versus Representação

• “Temos vinte e cinco computadores no laboratório.”

• Existe uma diferença entre a grandeza (a quantidade de objetos) e uma possível representação da mesma;

• Podemos representar tal grandeza em qualquer um dos sistemas vistos:

– Decimal: 3510;

– Binário: 100112;

– Octal: 438;

– Hexadecimal: 2316.

37

Sistemas de Numeração – Paralelo

• Formas de Representação:

– Notar que os sistemas Octal e Hexadecimal podem ser usados como formas compactadas de representar um número em Binário;

– Octal agrupando 3 dígitos binários em um dígito Octal;

– Hexadecimal agrupando 4 dígitos binários em um dígito Hexadecimal.

38

Sistemas de Numeração – Caracteres

• Representação de Caracteres:

– Um CCS (Conjunto de Caracteres Codificados - “Coded Character Set” ou “Character Encoding”) é definido para ser um mapeamento de um conjunto abstrato de caracteres para um conjunto de valores inteiros não negativos;

– Estes CCS são regulamentados por normas ISO;

39

Sistemas de Numeração – Normas

• Normas para representação e mapeamento de caracteres codificados:

40

Sistemas de Numeração – Caracteres

• Representação de Caracteres:

– Um CCS (Conjunto de Caracteres Codificados - “Coded Character Set” ou “Character Encoding”) é definido para ser um mapeamento de um conjunto abstrato de caracteres para um conjunto de valores inteiros não negativos;

– Esta codificação pode mapeada de duas formas diferentes, usando CEF (Formulário de Codificação de Caracteres -“Character Encoding Form”):

• Codificação com formulários de tamanho fixo de bits;

• Codificação com formulários de tamanho variável de bits.

41

Sistemas de Numeração – Caracteres

• Exemplos de codificação com tamanho fixo e variável:

42

Sistemas de Numeração – Caracteres

• Representação de Caracteres:

– Os CES (“Character Encoding Scheme” – Esquemas de Codificação de Caracteres), são transformações reversíveis de unidades de código para sequencias de bytes que podem ocorrer de três maneiras diferentes:

• Simples, mapeia cada unidade de código para uma sequencia de bytes em ordem;

• Complexas, usa duas ou mais CESs simples e mais um mecanismo para rolar entre elas;

• Comprimidas, mapeia uma sequência de código para uma sequência de bytes enquanto ao mesmo tempo minimiza o tamanho da sequência.

43

Sistemas de Numeração – Caracteres

• Representação pela Tabela ASCII:

– Código ASCII do inglês, “American Standard Code for Information Interchange” (Código Padrão Americano para o Intercâmbio de Informação);

– É um código binário composto de bytes (cadeias de 8 bits), sendo um byte para cada símbolo;

– Cada código binário CEF fixo, com 8 bits, sendo:

• 7 bits para o propósito de codificação;

• 1 bit de paridade (detecção de erro).

– Codifica um conjunto de 128 sinais:

• 95 sinais gráficos (letras do alfabeto latino, sinais de pontuação e sinais matemáticos);

• 33 sinais de controle.

44

Sistemas de Numeração – Caracteres

• Faixa de Representação do Código ASCII:

– O bit mais significativo era usado para paridade;

– Os restante dos 7 bits eram usados como magnitude;

P110 0001

Código ASCII da letra ‘a’

– Com 7 bits de magnitude era possível representar 128 símbolos diferentes:

45

Sistemas de Numeração – Caracteres

• Tabela ASCII de magnitude com 7 bits:

46

Sistemas de Numeração – Caracteres

• Faixa de Representação do Código ASCII:

– Posteriormente o código foi ampliado para permitir representar um conjunto maior de símbolos, na medida que outros idiomas além do inglês passaram a usar esta codificação;

– A magnitude passou a usar 8 bits o que permitiu a representação de 256 caracteres diferentes:

47

Sistemas de Numeração – Caracteres

• Extensão da tabela ASCII para magnitude com 8 bits:

48

Sistemas de Numeração – Caracteres

• Representação em UNICODE:

– Na prática 256 caracteres diferentes não são suficientes para todos os idiomas;

– A partir de um consórcio internacional foi definido um padrão para a codificação que fosse aplicável a todos os idiomas:

• UNICODE Standard.

– Cada caractere é representado por 8, 16 ou 32 bits:

• Os primeiros 256 caracteres possuem a mesma representação usada na tabela ASCII;

• Na verdade a representação está baseada em “glyphs” (glifos), onde diferentes glifos podem representar um mesmo caractere em idiomas diferentes.

49

Sistemas de Numeração – Caracteres

• Faixa de Representação do UNICODE Standard:

– Primeiramente a magnitude passou a usar 16 bits o que permitiu a representação de 65536 combinações diferentes:

– Atualmente magnitude pode usar até 32 bits o que permite a representação de 4294967296 combinações diferentes:

50

Sistemas de Numeração – Caracteres

• Faixa de Representação do UNICODE Standard:

– Representação da letra “a” com glifos diferentes:

– Os glifos não necessáriamente representam caracteres individuais, podendo representar um símbolo mais complexo, um “Ideopraph”.

51

Sistemas de Numeração – Caracteres

• Faixa de Representação do UNICODE Standard:

– Essa distinção entre glifos e caracteres é importante para idiomas como Árabe, Hebreu, idiomas orientais e idiomas com acentuação;

– Os glifos estão agrupados segundo subconjuntos regulamentados pelo conjunto das normas ISO/IEC 10646:2014;

52

Sistemas de Numeração – Caracteres

• Representação em UNICODE:

– O UNICODE pode trabalhar com CEF (formulários de codificação de caracteres) fixo ou variável;

– E possui 7 CESs (esquemas de codificação de caracteres):

53

Sistemas de Numeração – Próxima Aula

• Sistemas de Numeração:

– Para a próxima aula:

• Verifique a publicação da lista de exercícios e a data para entrega.

Continua na próxima aula!

Até breve.

54

http://nemo.inf.ufes.br/

55