Buscar

Sistemas de Numeração

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 7 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

[Digite texto]
Unidade II - Sistemas de Numeração
Representação de Informações
Símbolos - usamos símbolos para representar um objeto ou um valor absoluto.
Exemplos : Mesa e table – representam a mesma coisa.
 6, seis, six, VI – representam o mesmo valor
Como o computador é uma maquina digital todas as informações nele armazenadas são representadas por dois estados diferentes. Simbolicamente dizemos que adotamos os valores discretos 0 e 1 como a base da representação, mas na prática usamos dois valores diferentes de voltagem, de polaridade magnética ou de refração do laser.
0
1
 
 “presença / ausência de voltagem” ou “ligado / desligado” ou “1 / 0”
Assim considerando que um computador digital só pode assumir dois valores devemos representar todos as nossas letras e números com os símbolos existentes no sistema binário ( 0 e 1 ).
Teorema Fundamental da numeração
Notação posicional: Os algarismos que formam o número assumem valores diferentes de acordo com sua posição no número. Quanto mais a esquerda esta o digito maior valor significativo ele possui. 
1024
	+ significativo	- significativo
(1024)10
	100 * 4 = 1 * 4 =		 4 +
	101 * 2 = 10 * 2 =	 20 +
	102 * 0 = 100* 0 = 	 0 +
	103 * 1 = 1000 * 1 = 	1000 +
		valor	=	1024
Principais Bases de Numeração
Classificamos uma base de numeração pela quantidade de algarismos diferentes disponíveis na base
Base decimal 10 símbolos de 0 a 9;
Base binária 2 símbolos de 0 e 1;
Base Hexadecimal 16 símbolos de 0 a 9 e A B C D E F;
					 as letras representam os valores de 10 a 15
Conversão de Bases
 4.1 - Base qualquer para Base decimal
Podemos converter um numero em qualquer base para a base 10 com o somatório do digito multiplicado pela base elevada a posição que o digito se encontra no numero, generalizando temos a expressão : bn * an + ... + b2 * a2 + b1 * a1 + b0 * a0 onde b é base adotada. Lembrar que a posição do digito começa na casa ZERO.
 9 8 7 6 5 4 3 2 1 0
	
	
	
	
	
	
	
	
	
	
Exemplificando: com um numero na base 4
(1024)4 ( )10 		 b3 * a3 + b2* a2 + b1 *a1 +b0 * a0 = 
				43 * 1 + 42 * 0 + 41 * 2 + 40 * 4 =
				64 * 1 + 16* 0 + 4 * 2 + 1 * 4 = 
				64 + 0 + 8 + 4 = (76)4
Outros exemplos:
(111001)2 = ( )10 		1 1 1 0 0 1		 20 * 1 = 1
							21 * 0 = 0
							22 * 0 = 0
							23 * 1 = 8
							24 * 1 = 16
							25 * 1 = 32	+= 1 + 8 + 16 + 32 = (57)10
(21327)8 = ( )10				+= 84 * 2 + 83 *1 +82 * 3 + 81 * 2 + 80 *7 = 
	4096 * 2 + 512 * 1 + 64 * 3 + 8* 2 + 1 * 7 =
	8192 + 512 + 192 + 16 +7 = (8919)10
				
	( )10
	( )2
	( )16
	10 alg.
	2 alg.
	16 alg.
	0
	0
	0
	1
	1
	1
	2
	01
	2
	3
	11
	3
	4
	100
	4
	5
	101
	5
	6
	110
	6
	7
	111
	7
	8
	1000
	8
	9
	1001
	9
	10
	1010
	A
4.2 - Conversão da base decimal para outras bases:
Dividir sucessivamente os quocientes pela base desejada até o quociente ser zero. Os restos pegos ao contrario formarão o número na base desejada.
(7)10 ( )2		7 / 2 = 3, resto 1
			3 / 2 = 1, resto 1
			1 / 2 = 0, resto 1		(7)10 = (111)2
			
(160)10 ( )8 		160 / 8 = 20, resto 0
			20 / 8 = 2, resto 4
`			2 / 8 = 0, resto 2		(160)10 = (240)8
(1531)10 ( )16	 1531 / 16 = 95, resto 11
			95 / 16 = 5, resto 15
			5 / 16 = 0, resto 5		(1531)10 = (5FB)16
Forma gráfica de conversão da Base 10 para a base 2
	1
	1
	1
	1
	1
	1
	1
	1
 27 26 25 24 23 22 21 20
 128 64 32 16 8 4 2 1 
Podemos deduzir que o menor valor armazenado em 1 byte é 0 (zero) e que o maior valor armazenado em 1 byte é 255 (somatório de todas as casas) e que em um byte botemos armazenar 256 valores diferentes (0 a 255).
- Base 2 para 16 e base 16 para 2
Devemos considerar a relação de 1 para 4 
 23 22 21 20
	
	
	
	
 8 4 2 1
Da base 2 para a 16 dividir da direita para esquerda em grupos de 4 bits e passar os dígitos binários para hexadecimais, caso o último grupo não seja múltiplo de 4 preencher com zeros. 
Da base 16 para a 2 para cada 1 digito hexadecimal criar grupo de 4 bits e passar os dígitos hexadecimais para binários.
						
Exemplos: 
( 110101100 )2 ( )16 Agrupar de 4 em 4 bits (da direita para a esquerda) e converter cada grupo para hexadecimal
		
						( 1 1010 1100 )2
					 	 ( 1 A C )16			
( F1A )16 ( )2	 Cada algarismo hexadecimal gera um conjunto de 4 bits
		
						( F 1 A )16		
	
						
 ( 1111 0001 1010)2
Exemplos de estudo:
( 248 )10 = ( ) 2
( 110000001 ) 2 = ( ) 10
( 2A3C ) 16 = ( ) 10
( 2A1B ) 16 = ( ) 2
( 100110101 ) 2 = ( )16
Aritmética Computacional 
Operações aritméticas em bases quaisquer
Funciona como na base decimal, lembre-se que o valor máximo representável estoura em base-1, na decimal (base 10) estoura em 9. Em operacões com operandos em bases diferentes, converter para uma base comum e efetuar a operação
Soma:
base 10		1294 +		base 12		1294 +		base 16		FACA +
		3275				3275				CAFE	
		4569				4549			 1C5C8
Subtração: 
decimal		125 - 		binária 		1111 - 		100111 - 	 octal	7032 - 	 7654 - 
		 57				1010		011100		1341	 4567
		 68				0101		001011		5471	 3065
Hexadecimal		4567 - 		10A5 - 
			4271		015B
			02F6		 F4A
Representação de dados
É a forma na qual o computador armazena e manipula os dados a ele fornecidos para processamento.Um computador, para quem não sabe, funciona basicamente através da execução sistemática de instruções que o orienta a realizar algum tipo de operação sobre valores. Esses valores são comumente chamados de dados.
O homem representa a informação através de símbolos alfanuméricos, de forma a torná-la inteligível para os outros e para possibilitar armazenamento. Os símbolos em sí não são a própria informação, mas sim uma forma de representá-la. Já o computador as representa sempre na forma binária, ou seja, apenas através de 2 símbolos diferentes: 0 ou 1, ligado ou desligado.
De modo geral, exitem 3 formas primitivas de dados que são usadas em programas e entendidas pelo hardware: dados sob a forma de caracteres (tipo caractere), lógica (tipo lógico) e numérica (tipo numérico). Outras formas mais complexas são permitidas em certas linguagens modernas (tais como: tipo registro, tipo array, tipo ponteiro etc.). No entanto, durante o processo de compilação, os dados acabam sendo convertidos nas formas primitivas (caractere, lógica e numérica) para que o hardware possa entendê-las e executá-las.
6.1 Tipos de dados
Ao escrever um programa o programador deve definir o tipo de cada variável a ser utilizada em sua lógica. De acordo com o tipo definido o computador armazenará e manipulará este dado de forma diferente. 
Tipos mais comuns:		caractere
(primitivos)			lógico
				numérico		 ponto fixo		 sinal emagnitude
										 complemento a 1
										 complemento a 2
							ponto flutuante
Outros tipos:		Arrays
(complexos)	 Registros
			Ponteiros
			obs.: durante o processo de compilação são convertidos para os tipos primitivos.
Tipo caractere
Para poder representar os símbolos alfanuméricos entendidos pelo homem, define-se no computador para cada símbolo um conjunto de bits que o identifica de forma unívoca, gerando uma tabela de códigos de representação de caracteres. As tabelas de códigos mais comuns são: 
BCD Binary Coded Decimal - grupo de 6 bits/caractere, permitindo a codificação de 64 caracteres.
EBCDIC 	 Extended Binary Coded Decimal Interchange Code
Exclusivo da IBM, utiliza oito bits para represntar cada símbolo, podendo codificar até 256 símbolos diferentes.
ASCII 		American Standard Code for Information Interchange
Usado pelos demais fabricantes, utiliza 7 bits para representar 128 símbolos mais um oitavo bit de paridade.
ASCII Extended	American Standard Code for Information Interchange Extended
Oito bits, representando 256 símbolos diferentes, é o padrão dos PCs.
	Concepção no papel
	Armazenamento do fonte
	Compilação
	Símbolos alfanuméricos
	Conversão dos símbolos humanos para os bits equivalentes de acordo com a tabela de códigos utilizada pelo computador
	Analisará o código e converterá as variáveis para os tipos entendidos pelo computador , com suas respectivas formas de representação e manipulação
Tipo Lógico
Este tipo permite a utilização de variáveis que possuem apenas dois valores para a representação, FALSO (representado por 0) e VERDADEIRO (representado por 1).
6.2 Representação do Tipo Numérico
			numérico		 ponto fixo		sinal e magnitude
										complemento a 1
										complemeto a 2
							ponto flutuante
Um dos primeiros problemas ocorridos na escolha da representação de números para computadores foi a representação do sinal do número. Isso foi resolvido com o acréscimo de mais um bit na representação do número; esse bit adicional indica o sinal do número. A convenção universal é a seguinte: se o valor do número é positivo, então o bit de sinal é igual a zero; se o valor do número é negativo, então o bit de sinal é igual a 1.
	Valor decimal
	Valor Binário
	+ 12
	0 1100
	- 12
	1 1100
	- 47
	1 00101111
Outro problema de relevância, reside na forma de representação de números fracionários, devido à dificuldade de representar a vírgula internamente, entre a posição de dois bits. A solução está na escolha do modo de representação: em ponto fixo (método que assume uma posição fixa para a vírgula decimal e é utilizado apenas para representar números inteiros) ou em ponto flutuante.
Representação Sinal e magnitude : Uma quantidade pré-determinada de bits armazena o valor absoluto do número (magnitude) e o bit mais a esquerda representa o sinal (1 para negativo e 0 para positivo).
	Sinal
	 Magnitude
	
A representação por sinal e magnitude possui duas representações para o zero (00000 e 10000) e seria preciso um circuito lógico específico para evitar erros de má interpretação. Os fabricantes de computadores não utilizam esta representação devido aos problemas de implantação da ULA (Unidade Lógica e Aritmética) e custo (necessidade de construção de dois elementos, um para efetuar somas e outro para efetuar subtrações) e velocidade (perda de tempo gasto com manipulação dos sinais).
exemplos de sinal e magnitude com 8 bits: 		 -2 		10000010
							-1 		10000001
							 0 		10000000	duas representações 
							 0 		00000000	para o zero
							 1 		00000001
							 2 		00000010
Representação de números negativos em complemento:
Complemento a dois (Complemento a base) - Em matemática, o termo complemento significa a quantidade que falta para “completar” um valor, torná-lo completo. Por exemplo, o complemento de um ângulo agudo é o valor de graus que precisa ser adicionado ao ângulo para se obter 90° , considerando o angulo de 90° completo. O complemento a 2 é uma forma de representação dos números inteiros negativos, uma maneira de evitar os inconvenientes da representação sinal e magnitude.
Cálculo do Complemento a 2 (C2_N) - inverte-se o valor de cada algarismo do número N (onde for 1 passa a ser 0, ou vice-versa) e soma-se a ele 1. Exemplo: N = 00 C2_ de _N = + 1 = 
Cálculo do Complemento a 1 (Complemento a base menos um) - Proceder como no complemento à base, porém sem somar um ao resultado da inversão dos bits.
Vantagens de se trabalhar com a representação em complemento : Possui uma única representação para o zero e Necessita de um único circuito somador para realizar não só operações de soma como também operações de subtração (mais barato).
Exemplos de conversão: 
6 = 0001102	C1 111001	C2 111001+1 = 111010
10 = 0010102 	C1 110101	C2 110101+1 = 110110 
Representação em ponto flutuante
Na maioria dos cálculos de Engenharia, Física, Astronomia etc., os dados são números de valores muito grande, como a massa da Terra, ou então muito pequenos, como a massa do elétron. Se esses números tivessem que ser representados em ponto fixo, seria necessário utilizar uma grande quantidade de algarismos, muito mais do que a ULA de qualquer computador moderno pode trabalhar. Na verdade, a grande maioria dos algarismos seria de valor igual a zero.
	Exemplo: Se N1 = 0,000000000073 e N2 = 0,0000000001234 então S = N1 + N2 = 0,0000000001307
A solução para esse problema consiste em usar a representação comumente conhecida em Matemática como notação científica., que em computação chamamos de ponto flutuante. Esta representação é utilizada para todos os valores fracionários.
	Um número em notação científica é representado por um produto de dois fatores: N= 
	N = número que se deseja representar;
	F = parte fracionária ou mantissa;
	B = base de exponenciação (nosso interesse maior recai sobre a base 2);
	E = valor do expoente (a representação do expoente é definida pelo fabricante do processador)
Na representação em ponto flutuante, dois fatores são basicamente considerados:
	• precisão do número - indicada pela quantidade de algarismos da matissa;
	• grandeza do número - indicada pelo valor do expoente.
A precisão mede a exatidão do número: 3,14 ou 3,1416 ou 3,141592 ... e a grandeza indica quão grande ou quão pequeno é o número que se deseja representar. O valor do campo expoente em ponto flutuante mostra a faixa de grandeza dos números naquela representação. Por exemplo, se em uma representação em ponto flutuante o campo expoente possui 6 algarismos (5 bits para o valor do expoente e 1 bit para o sinal), isso significa que teremos disponíveis para representar números tão pequenos quanto e tão grandes quanto . Isto é, uma faixa de representação com valores.
Representação em notação científica:
0,754 x 10-4 expoente
mantissa
0,0000754 	= 0,754 x 10-4 					= 7,54 x 10-5 
		 vírgula deslocada 4 posições à direita (-)		 vírgula deslocada 5 posições à direita (-)
148000000	= 0,148 x 10+9 					= 148,0 x 10+6		
= 148000000,0	
		 vírgula deslocada 9 posições à esquerda (+)	 vírgula deslocada 6 posições à esquerda (+)
Representação Normalizada:
Para evitar diferentes interpretações do sistema de representação em ponto flutuante, costuma-se estabelecer uma padronização, denominada representação normalizada. Na forma normalizada, a mantissa é definida sempre como sendo um valor M que satisfaça a seguinte expressão: 1/B M < 1 (exceto se M =0). Na prática, essa definição pode ser substituída pelos seguintes passos:
	• A mantissa deve ser sempre fracionária (M é sempre menor que 1);
	• O primeiro algarismo após a vírgula tem que ser diferente de zero ( porque é igual ou maior que 1/B).Como a base de trabalho dos computadores é 2, então o 1° algarismo apóso zero será sempre 1.
0,000245010 = 0,245 x 10-3			101110000,002 = 0,10111 x 2+9
O formato típico de um número em ponto-flutuante de uma máquina que trabalha com registradores de 32 bits é: 
	S
	Expoente
	Mantissa
	 1bit 	 7bits			24bits			Total = 32bits
Conversão de Números Para Ponto Flutuante:
1
0101101
101100000000000000000000
Expoente
Sinal
Mantissa
Sinal: Representa o sinal do número, 1 bit
Expoente: o expoente incluindo se sinal, nos nossos exemplos terá 7 bits e será representado em S&M
Mantissa: a Mantissa em nossos exemplos terá 24 bits
Exemplo 1: Numero 407,375 converter para base 2:
	Divisão
	Resultado
	resto
	
	mutiplicação
	resultado
	parte inteira
	407/2
	203
	1
	
	0,375x2
	0,75
	0 
	203/2
	101
	1
	
	0,75x2
	1,5
	1
	101/2
	50
	1
	
	0,5x2
	1,0
	1
	50/2
	25
	0
	
	0,0x2
	0,0
	0
	25/2
	12
	1
	
	
	
	
	12/2
	6
	0
	
	
	
	
	6/2
	3
	0
	
	
	
	
	3/2
	1
	1
	
	
	
	
	½
	0
	1 
	
	
	
	
110010111,011 
Normalizar: 0,110010111011 x 2+9
Mantissa: 24 bits, 110010111011000000000000
Expoente: +9, em S&M com 7 bits = 0001001
Sinal: 0 
0
0001001
110010111011000000000000
Exemplo 2: Numero -0,078125 converter para base 2:
	Mutiplicação
	resultado
	parte inteira
	0,078125x2
	0,15625
	0 
	0,15625x2
	0,3125
	0
	0,3125x2
	0,625
	0
	0,625x2
	1,25
	1
	0,25x2
	0,5
	0
	0,5x2
	1
	1
	0,0x2
	0
	0
0,000101
Normalizar: 0,101 x 2-3
Mantissa: 24 bits, 101000000000000000000000
Expoente: -3, em S&M com 7 bits = 1000011
Sinal: 1 
1
1000011
101000000000000000000000
Exemplo 3: Ache o valor decimal equivalente à representação em ponto flutuante 04D0000016
04D0000016 = 0000 0100 1101 0000 0000 0000 0000 0000 2
sinal= 0
expoente = 0000100
mantissa = 110100000000000000000000
0,1101 x 2+4 = 1101,00 = 1310
7

Outros materiais