Click here to load reader
Upload
anne-carolline-oliveira
View
1.094
Download
5
Embed Size (px)
DESCRIPTION
Manuscrito ACM sobre sistemas numéricos e conversões.
Citation preview
Sistemas Numéricos Aléxis Oliveira, Anne Carolline Azevedo, Plínio Eduardo , Tâmara Taxman, Victor Vinícius,
Universidade Federal de Sergipe - Departamento de Computação
Cidade Universitária “Prof. José Aloísio Campos”, Avenida Marechal Rondon, Jardim Rosa Elze
São Cristóvão – SE – Brasil
557921056600
{alexis_sammy, lolabunny_loneytunes, baskett888, tamara_taxman, victorvi0}@hotmail.com
ABSTRACT This document expose what are numerical systems starting with
a brief history of numbers. Then we talk about the initial
concepts of systems numbers, which explain the calculation of
place value and the types of numerical systems. Soon after,
explain about the utilities of the binary system and how it is
related to Boolean algebra. We will show a case study that talk
about the Fundamental Theorem of the Numbers, which explain
the numerical conversions from binary, octal, hexadecimal and
decimal to each one of them. Still at case study, there is table of
representation ASCII and a short comment about BCD,
EBCDIC and UNICODE, with explanation about Supplement
Two. In the end, we talk about operations with binary numbers.
RESUMO O presente trabalho trata em geral sobre sistemas numéricos. E
mais especificamente sobre os conceitos iniciais dos sistemas de
numerações posicionais, passando antes por uma breve
explicação da história dos números. Posteriormente, analisamos
o cálculo do valor posicional e cada tipo de sistema posicional.
A principal utilização desses sistemas está na comunicação entre
usuário e máquina, na qual a linguagem que é utilizada pelo
usuário é convertida em linguagem de máquina. E essa
linguagem de máquina é representada, principalmente, pelo
sistema binário. Há o estudo de caso do Teorema Fundamental
da Numeração, no qual são expostas as conversões de base de
binária, octal, hexadecimal e decimal para cada uma delas.
Ainda no estudo de caso, encontra-se a tabela de representação
ASCII e um breve comentário sobre a BCD, a EBCDIC e a
UNICODE, com explicação sobre complemento de dois. No
final, explicamos sobre operações com números binários.
Palavras-chave
Sistemas Numéricos; Linguagem de Máquina; Conversão de
Base; Informática.
Categories and Subject Descriptors G.1 [Numerical Analysis]
Termos Gerais
Algoritmos, execução, linguagem, teoria.
1. INTRODUÇÃO Sistemas Numéricos são essenciais à vida cotidiana. Usados
largamente por todos, mas especialmente nas ciências exatas,
assim como na informática. Nela sua utilização não se restringe
à simples cálculos para resolução de problemas, sua principal
função está na comunicação entre máquina e usuário, pois
através de conversões numéricas torna-se possível traduzir a
linguagem de máquina (linguagem de baixo nível) para uma
linguagem mais comum (linguagem de alto nível), aquela usada
normalmente para nossa comunicação, comunicação entre
usuários.
Este trabalho será apresentado em 4 seções além da
introdução que se segue com uma breve passagem pelo
histórico. A Seção 2 apresenta os conceitos iniciais dos sistemas
numéricos e os tipos de sistemas posicionais. A Seção 3
apresenta as utilidades desses sistemas e finalmente na Seção 4
nós concluímos e apresentamos os estudos de caso.
1.1 História dos Números Em todas as épocas da evolução humana, mesmo nas mais
atrasadas, encontra-se no homem o sentido do número. O que
lhe permite reconhecer que algo muda em uma pequena coleção
(por exemplo, seus filhos, suas ovelhas) quando, sem seu
conhecimento direto, um objeto tenha sido retirado ou
acrescentado.
Através de uma série de circunstâncias, o homem aprendeu a
completar sua percepção limitada de número e começou a
contar. E a isso, devemos o progresso da humanidade.
2. SISTEMAS DE NUMERAÇOES
POSICIONAIS
2.1 Conceitos iniciais Os sistemas de numeração têm por objetivo prover símbolos e
convenções para representar quantidades.
Em alguns sistemas como no romano os símbolos só possuíam
valor absoluto, sendo chamado de sistemas de numeração não
posicionais.
Em outros, o valor representado depende da posição em que ele
aparece na representação, sendo chamado de sistema de
numeração posicional [3].
2.2 Fórmula para Cálculo do valor Posicional Usamos uma fórmula para calcular o valor de um símbolo dentro
de um determinado número, independentemente do sistema
posicional em questão.
V = S * B ^ P
Onde:
V - Valor posicional do símbolo.
S - Valor absoluto do símbolo.
B - Base do sistema numérico. É a quantidade de símbolos que
dispomos para escrever os números.
P - É a posição em que o símbolo em questão se encontra no
número. Esta posição é definida da direita para esquerda e inicia
em zero.
2.3 Tipos de sistemas posicionais
Existem quatro tipos de sistema posicionais, onde cada um
destes tem suas diferentes bases. Antes de vermos cada tipo de
sistema vamos ver o que é a base de um sistema numérico. A
base de um sistema numérico é a quantidade de elementos que
existe dentro de um sistema posicional, ou seja , aqueles
utilizados para sua representação[2]. Em nossa atual sociedade a
base mais utilizada é a base 10 (decimal) onde contamos com 10
algarismos para representação numérica que são os números 0,
1, 2, 3, 4, 5, 6, 7, 8, 9.
2.3.1 Sistema Decimal
O sistema decimal é provavelmente o sistema numérico
posicional mais antigo que conhecemos. Surgiu na Índia e, aos
poucos, foi substituindo os demais sistemas numéricos
existentes e hoje é quase universal sendo utilizado por todos nós
nas atividades do dia-a-dia [1]. Os circuitos ditos analógicos
processam informações usando o sistema decimal [2]. Este
sistema possui base 10, sendo seus elementos os números de 0 a
9.
2.3.2 Sistema Octal
Este sistema possui base 8, os seus elementos são os algarismos
de 0 à 8. O octal foi muito utilizado em informática como uma
alternativa mais compacta ao binário na programação em
linguagem de máquina. Hoje, o sistema hexadecimal é mais
utilizado como alternativa ao binário[4].
2.3.3 Sistema Hexadecimal
Este tipo de sistema posicional é muito usado em informática,
especialmente em programação assembly. Utiliza-se de 16
elementos, por os elementos do sistema posicional decimal que é
usado para numeração possuir apenas 10 números os elementos
do sistema em questão completa-se com seis letras que são: {A,
B, C, D, E, F.}.
2.3.4 Sistema Binário
Para nós seres humanos o sistema binário tem pouco utilidades
ao contrario de uma maquina, como o computador, que utiliza a
partir deste sistema para interpretar dados usando-se o estado da
corrente elétrica (ligada/desligada, alta/baixa, ou algo parecido).
Utiliza os algoritmos ZERO e UM em sua representação, os
quais correspondem aos estados desligado e ligado,
respectivamente. No sistema binário o valor de seus símbolos
(zero ou um) depende de sua posição, o que significa que este
sistema numérico é um sistema posicional [1]. Por este tipo de
sistema possuir dois elementos faz com que sua base seja dois.
3. UTILIDADES DOS SISTEMAS
NUMERICOS O sistema de numeração decimal é importante por que é
conhecido e compreendido universalmente no caso de
representar quantidades fora de qualquer sistema digital. Um
exemplo seria se você digitar um número com base decimal em
uma calculadora ou computador o circuito interno dessas
máquinas o transforma em binário para depois converter em seu
valor decimal equivalente.
3.1 Utilidades do sistema binário
Como o sistema binário utiliza apenas dois algarismos há uma
maior facilidade na representação dos estados de corrente
elétrica ligada/desligada ou alta/baixa, já que as máquinas
devem possuir precisão de resultados e outro sistema numérico
até então não conseguia ser tão preciso quanto o binário, usando
só zeros e uns, os quais correspondem aos estados desligado e
ligado,respectivamente.Estes sinais elétricos são tensões que
assumem dois diferentes valores: um valor positivo (hoje, nos
PC's, cerca de +3 V - três volts positivos) para representar o
valor binário 1 e um valor aproximado a 0 V (zero volt) para
representar o valor binário 0. Na realidade, estes valores não são
absolutos, e sim faixas de valores, com uma margem de
tolerância (entre +2.5 e +3.5 V, representando o valor binário 1,
e entre 0 e + 0,5 V representando o valor binário 0) [5]. A lógica
que permite aos computadores operar baseados nestes dois
valores é chamada Álgebra de Boole, em homenagem ao
matemático inglês George Boole (1815-1864)[4].
3.1.1 Álgebra Booleana
Álgebra Booleana surgiu a partir da busca de uma linguagem
universal, que tornasse todo pensamento racional em
matemático. Esta linguagem deveria ser transposta do domínio
verbal, que é repleto de ambigüidades, ao domínio da
matemática, que pode definir com precisão as relações entre
objetos ou enunciados. Em 1854, com o ensaio „Uma
Investigação das Leis do Pensamento‟, George Boole concebeu
uma espécie de álgebra, um sistema de símbolos e regras
aplicável a qualquer coisa, desde números e letras a objetos ou
enunciados[6]. Com esse sistema, Boole pode codificar
proposições - isto é, enunciados que se pode provar serem
verdadeiros ou falsos - em linguagem simbólica, e então
manipulá-las quase da mesma maneira como se faz com os
números ordinais.
3.1.2 Operações Básicas da Álgebra Booleana
As três operações mais fundamentais da álgebra são E, OU, e
NÃO. Embora o sistema de Boole inclua muitas outras
operações, essas três são as únicas necessárias para somar,
subtrair, multiplicar e dividir, e, ainda, para comparar símbolos
ou números. Para tanto, Boole introduziu o conceito de portas
lógicas que só processam dois tipos de entidades - verdade ou
falsidade, sim ou não, aberto ou fechado, um ou zero (código
usado no sistema binário). Boole esperava que, despojando os
argumentos lógicos de toda verbosidade, seu sistema se tornaria
muito mais fácil - na verdade, tornaria praticamente infalível - a
obtenção de soluções corretas [6].
4. ESTUDO DE CASO: TEOREMA
FUNDAMENTAL DA NUMERAÇÃO
O Teorema Fundamental da Numeração tem uso bastante
significativo, quando se trata de conversões numéricas para a
base decimal. Utiliza um princípio simples de somatório para
realizar as conversões, assim como veremos a seguir.
4.1 Conversões de base Bem, como falado anteriormente, nós usamos o sistema decimal
para realizar operações, representar quantidades e transmitir
informações. Porém, para o computador, a utilização de outros
sistemas de numeração facilita seu trabalho, além de também
tornar o processamento de suas informações muito mais rápido e
simples. Então, vamos mostrar como converter essas bases
numéricas.
4.1.1 Conversões de Binário/Octal e
Hexadecimal para Decimal Para esse tipo de conversão, utiliza-se o Teorema Fundamental
da Numeração (TFN):
n -1
N(b) = Σ d(i) x b(i) -m
No qual:
N = número que será convertido para a base decimal ;
d = cada algarismo do número representado na base
decimal que será convertido;
b = base atual do número;
i = índice do algarismo ou expoente da base b;
m = quantidade de algarismos à direita da vírgula;
n = quantidade de algarismos à esquerda da vírgula.
A partir de um número na base binária, por exemplo, cada
algarismo (já convertido para a base decimal) é multiplicado
pela sua base anterior elevada ao índice de cada algarismo do
número, e somado às outras multiplicações, o resultado dessa
soma será o número convertido na base decimal.
No caso do exemplo citado:
1³1²0¹0 2 = 1 x 2³ + 1 x 2² + 0 x 2¹
Então, para cada conversão para a base decimal, muda apenas a
base do número que será convertido, utilizando o mesmo
princípio de multiplicação e soma.
4.1.2 Conversões de Decimal para
Binário/Octal e Hexadecimal Nas conversões da base 10 para as bases 2, 8 e 16, utiliza-se o
mesmo método, tanto para a parte inteira, como para a parte
fracionária.
-Parte Inteira: São feitas divisões sucessivas pela base até que o
quociente seja zero (0) (ou o dividendo menor que o divisor),
tomando-se os restos na ordem inversa.
-Parte Fracionária: Toma-se a parte fracionária e efetua-se
multiplicações sucessivas pela base, até que o seu valor venha a
ser zero(0) (ou atingir a precisão desejada), resguardando-se as
partes inteiras na ordem normal.
4.1.3 Conversões entre Binário, Octal e
Hexadecimal
As conversões mais simples são as que envolvem bases que são
potências entre si. Vamos exemplificar com a conversão entre a
base 2 e a base 8. Como 23 = 8, separando os bits de um número
binário em grupos de três bits (começando sempre da direita
para a esquerda!) e convertendo cada grupo de três bits para seu
equivalente em octal, teremos a representação do número em
octal [13].
Então, como no caso da conversão de octal para binário, e vice-
versa, basta agrupar o número binário de três em três algarismos,
na conversão de hexadecimal para binário, e vice-versa, o
agrupamento é feito de quatro em quatro, já que 2^4 = 16, a
separação de bits é feita em grupos de quatro bits(também
começando da direita para a esquerda, e caso faltem algarismos
para agrupar, completa-se com zeros à esquerda do número, em
ambos os casos, tanto no octal, quanto no hexadecimal).
4.2 Tabelas de Representação Para manter a comunicação entre usuário-máquina é necessário
intermediar esse processo. Tanto na passagem de informação do
usuário para a máquina, quanto no processo inverso, utilizam-se
tabelas de conversão, nas quais símbolos usados pelo
computador equivalem a outros símbolos usados pelos usuários.
Dentre elas, as mais conhecidas são:
Uni código.UNICODE
Código padrão americano para o intercâmbio de informações.ASCII
Código ampliado de caracteres decimais codificados em binários para o
intercâmbio de dados.
EBCDIC
Números decimais codificados em binários.BCD
Uni código.UNICODE
Código padrão americano para o intercâmbio de informações.ASCII
Código ampliado de caracteres decimais codificados em binários para o
intercâmbio de dados.
EBCDIC
Números decimais codificados em binários.BCD
Figura 1 – Tabelas de Representação
4.2.1 Tabela ASCII
ASCII (para American Standard Code for Information
Interchange, que em português significa "Código Padrão
Americano para o Intercâmbio de Informação") .
ASCII é uma padronização da indústria de computadores, onde
cada carácter é manipulado na memória sob forma de código
binário. O código ASCII é formado por todas as combinações
possíveis de 8 bits, 2^8 = 256 combinações.
Nas duas figuras que seguem há a junção da tabela ASCII
Normal (32 a 127), tabela dos Caracteres Controle (0 a 31) e a
tabela ASCII Estendida (128 a 255) [12].
8 bits = 1Byte =1 caractere
Figura 2: Tabela ASCII – Parte I [10]
Figura 3: Tabela ASCII – Parte II [11]
4.2.3 - Complemento para dois
É o sistema mais usado para representação de números inteiros
com sinal nos computadores modernos.
O dígito mais significativo, à esquerda do número, é o que
informa seu sinal. Se este dígito for zero (0) o número é positivo
e se for um (1) é negativo.
Pela definição, só existe uma representação para o zero e ela é
0000...0.
Para obtermos o complemento de 2 de um número binário,
precisamos inicialmente converter o número em seu
complemento de 1,que obtém-se trocando cada bit pelo seu
complemento (01 e 1 0).
A seguir, soma-se 1 ao complemento de 1, obtendo assim o
complemento de 2.
Vamos exemplificar obtendo os complementos de 2 dos
números binários abaixo:
Equivale a “2” (dois) em decimal
Valor do algarismo após empréstimo
Multiplicador com valor ultrapassando
duas casas
binário Compl. de 1 Compl. de 2
10001001 01110110 01110111
00111100 11000011 11000100
Devemos observar que devido ao seu emprego em hardware os
números binários são representados sempre com um número fixo
de 08 bits.
A conversão inversa, ou seja, de um número em representação
complemento de 2 para a notação binária original é feita
obtendo-se novamente o seu complemento de 2.
4.3 Operações com Números Binários
As operações aritméticas também estão presentes no sistema
binário e não se diferenciam muito das operações aritméticas no
sistema decimal.
4.3.1 Adição
A Adição no sistema binário é realizada da mesma forma que
uma adição no sistema decimal possuindo dois ou mais fatores,
que são os operandos, e a soma que é o resultado da adição
desses fatores. O numero “0” (zero) na adição é um numero
neutro, ou seja, qualquer numero somado a “0” (zero)o resultado
será o próprio número. Como no sistema binário nós temos
apenas dois dígitos, os possíveis casos são:
Fator 1 - a) 0 b) 0 c) 1 d) 1 e) 1 - Fator 1
Fator 2 - +0 +1 +0 +1 + 1 - Fator 2
Soma - 0 1 1 10 1 - Fator 3
11 - Soma
No caso “d” o resultado será “10” porque irá acontecer um
transporte. Usando a regra do “vai a um” da adição o resultado
da soma do caso “d” é igual a “0”(zero) e “vai a um”[8]. Como
não há outros números para serem somados, o numero “1”(um)
,que foi para acima da próxima casa, desce e assim a conta se
encerra resultando “10” (dez).
No caso “e” o resultado será “11” seguindo o mesmo motivo do
caso “d”. Usando a regra do “vai a um” da adição o resultado da
soma do caso “e” é igual a “1”(um) e “vai a um”. Como não há
outros números para serem somados, o numero “1”(um) ,que foi
para acima da próxima casa, desce e assim a conta se encerra
resultando “11” (onze).
4.3.2 Subtração
A Subtração no sistema binário é realizada da mesma forma que
uma subtração no sistema decimal possuindo o minuendo e o
subtraendo que são os operandos, e a diferença que é o resultado
da retirada do valor do subtraendo em cima do valor do
minuendo. O número “0” (zero) na subtração é um número
neutro, ou seja, qualquer número que dele seja retirado “0”
(zero) resultará no próprio número. Os possíveis casos são:
Minuendo - a) 0 b) 1 c) 1
Subtraendo - -0 -0 -1
Diferença - 0 1 0
Além desses, há um caso especial quando o minuendo é menor
que o subtraendo. Nesse tipo de caso, nós usaremos a regra do
“pegar emprestado”, onde o minuendo irá pegar “1” (um)
emprestado do seu vizinho da esquerda.
0 1
1110
- 1001
0101
4.3.3 Multiplicação
A Multiplicação no sistema binário é realizada analogamente a
uma multiplicação no sistema decimal. Na sua forma mais
simples a multiplicação é uma forma rápida de se adicionar uma
quantidade finita de números iguais a um valor. O resultado da
multiplicação de dois números é chamado produto. Os números
sendo multiplicados são chamados de coeficientes ou operandos,
e individualmente de multiplicando e multiplicador. Os
possíveis casos [9] são:
Multiplicando - a) 0 b) 0 c) 1 d) 1
Multiplicador - x0 x1 x0 x1
Produto - 0 0 0 1
Segue um exemplo de multiplicação binária:
11110
x 11
11110
+11110
111100
Como dito antes, a multiplicação no sistema binário ocorre de
maneira igual à multiplicação do sistema decimal. Primeiro
ocorre a multiplicação do multiplicando pelo multiplicador, e
em seguida faz-se a soma binária dos resultados obtidos (caso o
multiplicador possua um valor que ultrapasse duas casas).
5. CONCLUSÃO
Este trabalho expôs de maneira simples e objetiva os diferentes
tipos de sistemas posicionais, destacando aquele que sem dúvida
é um dos mais importantes para a programação, o sistema
binário. A utilização deste se dá em praticamente todas as ações
do computador, desde simplesmente digitar um caractere até a
codificação e o armazenamento da informação.
A essencialidade desse sistema se deve, sobretudo, a sua
associação com a lógica de Boole, que possibilitou sua
utilização nos circuitos eletrônicos.
Hoje, da forma como a codificação binária está concatenada à
computação, dificilmente um outro sistema numérico terá a
capacidade de substituí-lo completamente.
6. REFERÊNCIAS
[1Daniel Pereira Guimarães. Tipos de sistemas posicionais.
Disponível em http://www.tecnobyte.com.br/sisnum1.htm.
Acessado em 08 de Maio de 2008.
[2] Prof. Luiz Marcelo Chiesse da Silva. Base do sistema
posicional. Disponível em
http://www.cp.utfpr.edu.br/chiesse/Sistemas_Digitais/Sistemas_
Num.pdf , Acessado em 6 de Maio de 2008.
[3] Wikiversidade. Lógica Digital/Sistemas Numéricos.
Disponível em
http://pt.wikiversity.org/wiki/L%C3%B3gica_Digital/Sistemas_
num%C3%A9ricos, Acessado em 16 de maio de 2008;
[4] Wikipedia.Sistama octal, utilidades. Disponível em. http://pt.wikipedia.org/wiki/Sistema_octal, Acessado em 28 de
Junho de 2008;
[5].Professor Rui Mano.PUC-Rio, Curso de Tecnólogos em
Processamento de Dados - Organização de Computadores.
Sistemas de Numeração . Disponível em
http://wwwusers.rdc.puc-rio.br/rmano/comp5cb.html. Acessado
em 25 de abril de 2008;
[6] William 2000. Base Binária e álgebra de BOOLE – Um
pouco de história... Bit @ Bit – Ensino a Distância. Disponível
em http://200.19.92.57/wschui/goodbit/BOOLEK.html.
Acessado em 03 de maio de 2008;
[7] José Luís Güntzel e Francisco Assis do Nascimento.
Introdução aos Sistemas Digitais (v. 2001/1). Disponível em
http://minerva.ufpel.edu.br/~guntzel/isd/isd2.pdf. Acessado em
05 de maio de 2008;
[8] Nebjsa Matic, traduzido porAlberto Jerônimo. Sistemas
Numéricos. The Pic microcontroller Book 1 -
Microcontroladores PIC on-line. Disponível em
http://www.mikroe.com/pt/product/books/picbook/ap_b.htm,
Acessado em 26 de abril de 2008;
[9] . Professor Carlos Felgueiras. Operações binárias.
Disponível em
www.carlosfelgueiras.hpg.ig.com.br/Cursos/SistemasDigitais/O
peracoesBinarias.ppt. Atualizado em janeiro de 2002 .Acessado
em 21 de Junho de 2008;
[10] Figura 2 - Tabela ASCII – parte 01. Disponível em
http://www.cdrummond.qc.ca/cegep/informat/Professeurs/Alain/
files/ascii.htm. Acessado em 10 de maio de 2008;
[11] Figura 3 - Tabela ASCII – parte 02. Disponível em
http://www.computerhope.com/jargon/a/ascii.htm. Acessado em
10 de maio de 2008;
[12] Tabela ASCII Completa - Spectrum.eti. João Paulo
Franqueto. Atualizado em 18 de março de 2007. Disponível em
http://www.spectrum.eti.br/news/tabela_ascii_completa.
Acessado em 17 de maio de 2008;
[13] Professor Rui Mano. PUC – Rio. Sistemas de Numeração.,
Curso de Tecnólogos em Processamento de Dados -
Organização de Computadores. Disponível em
http://wwwusers.rdc.puc-rio.br/rmano/sn2cvb.html. Atualizado
em 06 de agosto de 1998. Acessado em 01 de maio de 2008;