sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária...

16
1 Sistemas de numeração Utilizar a notação decimal é interessante para nós seres humanos, principalmente pela associação com o número de dedos. Porém para o computador a manipulação de dados através dessa notação é atualmente inviável, e por isso, o computador utiliza a representação de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos tão acostumados com a representação de valores no formato decimal que passa despercebido a forma como são compostos, por exemplo, o número 456 é a combinação de: 6 x unidades (peso 1 ou 10 0 ) 5 x dezenas (peso 10 ou 10 1 ) 4 x centenas (peso 100 ou 10 2 ) Ou outra forma de representação é através do peso das casas: Valor 4 5 6 Peso 10 6 10 5 10 4 10 3 10 2 10 1 10 0 Resultado 400 50 6 Somando-se os resultados: 400 + 50 + 6 = 456 Parece uma brincadeira, mas lembre-se que já estamos acostumados com esse sistema de numeração e já sabemos como representar ele. 1.2 Sistema de numeração binário A codificação utiliza pelo computar possui apenas dois estados possíveis, com isso a tabela de pesos utiliza a base 2, e como podemos ter apenas os valores 0 e 1 nas casas, vamos fazer a demonstração de quanto vale o número 1110010 2 (perceba o 2 subscrito após o número, ele representa em qual base se está apresentado o número) Valor 1 1 1 0 0 1 0 Peso 2 6 = 64 2 5 = 32 2 4 = 16 2 3 =8 2 2 =4 2 1 =2 2 0 =1 Resultado 64 32 16 0 0 2 0 Somando os resultados: 64 + 32 + 16 + 0 + 0 + 2 + 0 = 114 10

Upload: others

Post on 28-Apr-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

1 SistemasdenumeraçãoUtilizaranotaçãodecimalé interessanteparanóssereshumanos,principalmentepela

associação com o número de dedos. Porém para o computador a manipulação de dadosatravésdessanotaçãoéatualmenteinviável,eporisso,ocomputadorutilizaarepresentaçãodeinformaçãoatravésdanotaçãobinária(doisestados:ligadooudesligado,0ou1).

1.1 SistemadenumeraçãodecimalEstamos tão acostumados com a representação de valores no formato decimal que

passadespercebidoaformacomosãocompostos,porexemplo,onúmero456éacombinaçãode:

6 x unidades(peso1ou100) 5 x dezenas(peso10ou101) 4 x centenas(peso100ou102)Ououtraformaderepresentaçãoéatravésdopesodascasas:Valor 4 5 6Peso 106 105 104 103 102 101 100

Resultado 400 50 6Somando-seosresultados:

400+50+6=456

Pareceumabrincadeira,maslembre-sequejáestamosacostumadoscomessesistema

denumeraçãoejásabemoscomorepresentarele.

1.2 SistemadenumeraçãobinárioA codificação utiliza pelo computar possui apenas dois estados possíveis, com isso a

tabeladepesosutilizaabase2,ecomopodemosterapenasosvalores0e1nascasas,vamosfazer a demonstração de quanto vale o número 11100102 (perceba o 2 subscrito após onúmero,elerepresentaemqualbaseseestáapresentadoonúmero)

Valor 1 1 1 0 0 1 0Peso 26=64 25=32 24=16 23=8 22=4 21=2 20=1Resultado 64 32 16 0 0 2 0

Somandoosresultados:

64+32+16+0+0+2+0=11410

Page 2: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Atividade:

Convertaosseguintesnúmerosdebinárioparadecimal:

a) 10010012b) 110011112c) 11110011112d) 111110002e) 10000000002

f) 10011110002g) 11000110012h) 110000102i) 111111112j) 110000002

1.2.1 ConvertendodedecimalparabinárioO processo de conversão de decimal para binário pode ser feito de duas formas, de

formaaexemplificarosprocessosvamosconverteronúmero35110parabinário:

Método1–Dividindoonúmeropor2sucessivamente

351 2175 2350

1 350 87 28611

43 2421

21 2201

10 2100

5 241

2 220

1

Utilizandoosresultadosdetrásparafrente:

35110=1010111112

Método2–Subtraçãodopesodascasas

Nessemétodo,precisoverificarsepossosubtrairovalordonúmeropelopesodacasa,casopositivo,acrescento1(um)asaídaeorestodasubtraçãoéenviadaparaapróximacasa.Seonúmeroémenorqueopesodacasa,acrescento0(zero)paraasaídaecontinuoomesmonúmeronovalordapróximacasa.

Page 3: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Valor 351–256= 95 95-64= 31 31-16= 15-8= 7-4= 3-2= 1-1=0Peso 29=512 28=256 27=128 26=64 25=32 24=16 23=8 22=4 21=2 20=1Saída 1 0 1 0 1 1 1 1 1

Novamentechegamosaoresultado:

35110=1010111112

Atividade:

Utilizandoqualquerumdosmétodosestudados,façaaconversãodedecimal

parabinário:

a) 199010b) 102410c) 109510d) 97410e) 56410f) 51210

g) 6410h) 23110i) 55510j) 204810k) 12210l) 25510

1.3 SistemadenumeraçãooctalParanóshumanos,entenderumasequênciade0e1éconfusoefazeraconversãode

binário para decimal exige certo cálculos para se obter o valor, de forma a simplificar avisualizaçãodesequênciasdebitssãoutilizadosoutrosmétodosesistemadenumeração.Umdeleéooctal,queutilizaosnúmerode0a7,totalizando8possíveiscombinaçãoporcasa.

1.3.1 ConversãodeoctalparadecimalPara converter um número em octal para decimal utilizamos o processo de casas e

pesos,porexemplo,paraconverteronúmero7538paradecimalfizemos:

Valor 7 5 3Peso 85=32.768 84=4096 83=512 82=64 81=8 80=1Resultado 7x64=448 5x8=40 3x1=3

Oresultadoserá:

448+40+3=49110

Atividade:

Convertaosnúmerosdabaseoctalparadecimal

a) 7778b) 10008c) 6538

g) 2418h) 2318i) 5558

Page 4: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

d) 27308e) 5128f) 32768

j) 10248k) 1228l) 2558

1.3.2 ConversãodedecimalparaoctalPara converter um número em decimal para octal, utilizamos o processo de divisão

sucessivaspor8.

Vejaumexemplo,paraconverteronúmero89710paraoctal

897 88961

112 81120

14 886

1

Oresultadoé16018

Atividade:

Convertaosnúmerosemdecimalparaseuequivalenteemoctal.

a) 102410b) 100010c) 409510d) 273010e) 51210f) 327610

g) 24110h) 23110i) 55510j) 204810k) 12210l) 25510

1.3.3 ConvertendodebinárioparaoctalO real motivo de se utilizar o sistema de numeração octal deve-se a forma de

representarosnúmerosembinário.Porissoosistemadeconversãoésimples,porémanteseinteressanteconheceronúmeroemoctaleseequivalenteembinário.

Tabela1-Equivalênciaoctal-binária

Octal Binário0 0001 0012 010

Page 5: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

3 0114 1005 1016 1107 111

Combasenessa tabela, basta apenasagrupar a cada trêsbitsonúmeroembinárioeverificarseuequivalenteemoctal,casonecessáriopodemospreenchercomzerosaesquerdanossonúmeroembinário.

Vejaoexemplo,paraconverteronúmero11001110112paraoctal:

1100111011}}}}

3741

Resultado:11001110112=14738

Atividade:

Convertaosseguintesnúmerosdebinárioparaoctal:

a) 1110010012b) 11001001112c) 11100112d) 111110002e) 11100000002

f) 101100011102g) 111000001111002h) 1101010112i) 111111112j) 1110001110001112

1.3.4 Conversãodeoctalparabinário.Para a conversão de octal para binário o processo é o inverso daquele apresentado

anteriormente,utilizandoaTabela1utiliza-seaequivalênciadonúmeroemoctal

Paraexemplificar,vamosconverteronúmero47328parabinário:

100111011010

4732 }}}}

Oresultadodaconversão:1001110110102

Page 6: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Atividade:

Convertaosseguintesnúmerosdeoctalparabinário:

a) 100008b) 5518c) 2558d) 10248e) 70128

f) 4448g) 378h) 108i) 1778j) 30078

1.4 SistemadenumeraçãohexadecimalDe uma forma parecida ao sistema octal, o hexadecimal é utilizado para melhor

visualizarumasequenciadebits,sendoinclusivemuitomaisutilizadoqueooctal.Deformaacompletaralistacom16símbolos,apóso9seiniciaautilizaçãodeletras,começandonoAatéoF,essaequivalênciaévistanaTabela2

Tabela2-EquivalênciaDecimal-Hexadecimal

Decimal Hexadecimal0 01 12 23 34 45 56 67 78 89 910 A11 B12 C13 D14 E15 F

1.4.1 Conversãodehexadecimalparadecimal.Para a conversão utilizamos o sistema de casas agora com a base 16. Para exemplo,

vamosconverteronúmeroA5D(percebaasubstituiçãodaletrapelaseuequivalentedecimal)

Valor A 5 DPeso 164=65536 163=4096 162=256 161=16 160=1Resultado 10x256=2560 5x16=80 13x1=13

Resultado=2560+80+13=265310

Page 7: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Atividade:

Convertaosseguintesnúmerosdehexadecimalparadecimal:

a) E5B16b) FFF16c) 100016d) 1A16e) AFF16

f) 111116g) CDE16h) 99916i) 11FF16j) FAF16

1.4.2 ConversãodedecimalparahexadecimalOprocessoocorrepordivisão,semprecuidandoparaocasodorestoformaiorque10

devesersubstituídopelosualetraequivalente.

Convertendoonúmero1205910paraabasehexadecimal:

12059 1612048(B)11

753 1647752

116232

(F)15

Resultado=2F1B16

Atividade:

Convertaosnúmerosemdecimalparaseuequivalenteemhexadecimal.

m) 102410n) 100010o) 409510p) 273010q) 51210r) 327610

s) 24110t) 23110u) 55510v) 204810w) 12210x) 25510

1.4.3 ConversãodehexadecimalparabinárioA conversão entre essas bases segue omesmo raciocínio da conversão entre octal e

binário,porémcom4casas,queéaquantidadedecasasnecessáriapara representaros16símbolosemhexadecimal.

Hexadecimal Binário Hexadecimal Binário0 0000 8 10001 0001 9 1001

Page 8: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

2 0010 A 10103 0011 B 10114 0100 C 11005 0101 D 11016 0110 E 11107 0111 F 1111

Aconversãoaconteceagrupandoosbinárioemgrupode4everificandoseuequivalenteemhexadecimal,oprocessoinversotambéméválido.

Porexemplo,paraconverteronúmero1011110101012parahexadecimal:

101111010101}}}B D 5

Ede1F816parabinário:

111111000

}}}1 F 8

Atividade:

Convertaosnúmerosdehexadecimalparabinário

a) F0F16b) 100016c) F116d) B0016e) 102416f) CD16

g) FFFF16h) 999916i) 1A16j) 204816k) F2216l) 51216

Atividade:

Convertaosnúmerosdebinárioparahexadecimal

a) 1111100010012b) 110011100112c) 11111111112d) 1111100002e) 11110000111100002

f) 101100011102g) 111000001111002h) 1101010112i) 111111112j) 1110001110001112

Page 9: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

2 ManipulaçãoeorganizaçãodosdadosCada computador possui um tamanho da palavra (word size) que indica o tamanho

nominal dos números inteiros e apontadores de dados. Como um endereço virtual érepresentadopelacomoumapalavra,otamanhodapalavradeterminaotamanhomáximodoendereçamentodamemóriavirtual.

Noscomputadorespessoaisopadrãoé32bits/64bits,comumsistemaquetem32bitsdo tamanho da palavra, o tamanho máximo de memória é de 232 = 4GB1. Enquanto nossistemasde64bitsesselimiteéiguala264=16HB(17.179.869.184GB)

2.1 TamanhodosdadosComputadoresecompiladores suportamvários formatosdedados,utilizandodiversas

formaspararepresenta-los,porexemplo,inteiroseflutuantes,bemcomodiferenteslarguras.Por exemplo,muitasmáquinas tem instruçõesparamanipularbytes simples, como tambéminteirosrepresentadospor2,4ou8bytes.

ATabela3apresentaaquantidadedebytesutilizadosporalgunstiposdedadosemCeacapacidadedearmazenar.

Tabela3-TamanhodealgunstiposemC

DeclaraçaoemC Bytes Valorespossíveischar 1 –128até127shortint 2 –32,768até32,767int 4 –2,147,483,648até2,147,483,647longint 4 –2,147,483,648até2,147,483,647float 4 3.4E+/-38(7digitos)double 8 1.7E+/-308(15digitos)

Fonte:CPlusplus2

2.2 EndereçamentoeordemdeBytesOs programas que utilizam vários bytes para armazenar dados, precisar de duas

informações:qualoendereçodearmazenamentoequalaordemdosbytesnamemória.Paradados armazenados em vários bytes, geralmente uma sequência de bytes contínuos éreservadoparaessedado.Oendereçodadoéobyteinicial,porexemplo,seumavariávelxéarmazenadanoendereço0x100,ovalordaexpressão&xé0x100.Portantoosquatrobytesdavariávelxsãoarmazenadosnosendereços0x100,0x101,0x102e0x103.

A ordem dos bytes é a forma como os dígitos serão armazenamentos no espaço dememória,podendoiniciarpelomaissignificativo(bigendian)oupelomenossignificativo(littleendian)3.Exemplosdearquiteturaquesão littleendian incluem:x86(inclusivex86-64),6502

1 Alguns sistemas na prática reconhecem apenas 3GB, para entender isso pesquise por “3 GB

barrier”2http://www.cplusplus.com/doc/tutorial/variables/3Protocolosseriaistambémsãoclassificadosquantoaordemdeenviodasinformações.

USB,RS-232,RS-422eRS-485sãoexemplosdepadrõesseriaisdotipolittleendian

Page 10: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

(inclusive 65802, 65C816), Z80 (inclusive Z180, eZ80 etc.),MCS-48, 8051, DEC Alpha, AlteraNios,AtmelAVR,SuperH,VAX,ePDP-11.

Nossa formade representar númeroé equivalente aobig endian, onde começamos arepresentar um número com omaior peso primeiro e a esquerda. Algumas arquitetura bigendian são: Motorola 6800 e 68k, Xilinx Microblaze, IBM POWER, System/360 e seussucessoresSystem/370,ESA/390,ez/Architecture.

Ainda há um conjunto de arquitetura que a ordem dos bytes pode configurado nomomento de inicialização, denominadas bi-endian. São exemplo de arquitetura bi-endianARM,PowerPC,Alpha,SPARCV9,MIPS,PA-RISCeIA-64.

Aseguirsegueumexemplodearmazenamentodovalor0x0A0B0C0DnasformasBigeLittleEndian:

0x103 0D0x102 0C0x101 0B0x100 0AFigura1-BigEndian

0x103 0A0x102 0B0x101 0C0x100 0DFigura2-LittleEndian

2.3 RepresentandostringString em C é codificado como uma sequência de caracteres terminada pelo caracter

nulo (valor0).Cadacaracteréumnúmero inteiroconvertidoatravésdeumadefiniçãoparaumcaracter.AtabelamaisutilizadaéaASCII,queapresentaaequivalênciadeváriossímbolosparaobinário,porexemploastring“arquitetura”serárepresentadaconformemostraaFigura3,percebaqueocomputadoriráarmazenarovalorembinário.

Caracter a r q u i t e t u r a

Decimal 97 114 113 117 105 116 101 116 117 114 97

Binário 1100001 1110010 1110001 1110101 1101001 1110100 1100101 1110100 1110101 1110010 1100001

Hexadecimal 61 72 71 75 69 74 65 74 75 72 61Figura3-Representaçãodecaracteres

Desafio:

ProgrameumprogramaemCquerecebaumastringeconvertaoscaracteresparabinário,decimalehexadecimal.

Page 11: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

2.4 RepresentaçãodeinteirosExistemdiversasformasderepresentarumnúmerointeiro,aprincípioocomputadoré

capazdearmazenar inteirospositivos apenas,porém, comoproceder seprecisar armazenarumnúmeronegativo?Essecapítuloirátratardessasformasderepresentação

2.4.1 CodificaçãodeinteirossemsinalAssumimos que armazenamos um inteiro com a largura ω, o vetor que contêm os

valoreschamaremosdeň,umasequênciadebitsqueseráconvertidoparainteirosemsinal.Aequaçãoquetranscreveaformadeconversãoéapresentadoaseguir:

𝐼!! = ň 𝑖 ×2!!!!

!!!

2.4.2 Codificaçãodeinteiroscomsinal4Pararepresentarumnúmerocomsinaloprocessomaiscomuméocomplementode2.

Ele utiliza obitmais significativodapalavra como sinal. A expressãoquedefine a formadeconversãoé:

𝐼!" = − ň ω − 1 ×2!!! + ň 𝑖 ×2!!!!

!!!

Porexemplo,qualonúmeroemdecimalrepresentadopelonúmero110110102,percebaquealarguradovetoré8:

Valor 1 1 0 1 1 0 1 0Peso 27=128 26=64 25=32 24=16 23=8 22=4 21=2 20=1Resultado 128 64 0 16 8 0 2 0

-(128)+64+16+8+2=-38

Atividade:Converta os seguintes números binários para decimal com sinal e sem sinal,paratodosotamanhodearmazenamentoé8.

a) 100000012b) 111111112c) 100000002d) 111100002e) 10101012

f) 100000012g) 110010002h) 111111102i) 11111112j) 100111012

Atividade:

4 Fim do mundo para o Linux e similares, um problema de limitação na variável de

armazenamento da data nos sistemas com padrão POSIX podem causar problemas, o fim será as03hrs14min07segde19deJaneirode2038.Paramaioresdetalhesprocurepor“Bug2038”

Page 12: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Converta os seguintes números negativos para binário, o limite dearmazenamentoé8bits.

a) -110b) -10010c) -210d) -6410e) -1610

f) 12710g) -9910h) -2210i) -12010j) -12810

Atividade:

Identifiqueovalordavariáveluxeexpliqueoresultado.int x = -1; unsigned ux = (unsigned) x;

A linguagem C considera os números inteiros como com sinal, com isso algumasconversõesproduzemresultadosinesperados.

Atividade

Verifiqueascomparaçõesabaixoverificandoquaisnãocondizemcomoesperadoejustifiqueadiferença(sãotrêsoscasosquenãocondizemcomoesperado):

Expressão Saídaesperada Inesperado?

0==0U Verdadeiro-1<0 Verdadeiro-1<0U Verdadeiro2147483647>-2147483648 Verdadeiro2147483647U>-2147483648 Verdadeiro2147483647>(int)2147483648U Verdadeiro

2.5 PontoflutuanteOpontoflutuanteéumaformaderepresentarnúmerosnaformaracional(envolvendo

frações). A padronização dos números em ponto flutuante em 1985 garantiu ahomogeneidade da representação e cálculos desse tipo de número. Antes disso, cadafabricante adotava uma forma própria de representar e tambémde operar,muitas vezes ofator precisão era deixado em segundo plano em favor de um melhor desempenho doscálculos.

2.5.1 NúmerosfracionáriosbináriosNanossaformanormaderepresentaçãodenúmerosfracionáriosdecimais,utilizamoso

sistemadepesotambémno ladodireitodavírgulaqueseparaaparte inteiradafracionária.Porexemplo,onumero12,345seriarepresentadoassim:

Valor 1 2 3 4 5 Peso ... 101 100 10-1 10-2 10-3 ...

Page 13: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Resultado 10 2 0,3 0,04 0,005

Oresultadoseriaasomadosresultados,ounaformamatemática:

𝐷 = 10!×𝑑[𝑖]!

!!!!

OndeDseriaonúmerodecimalfinal,maquantidadedecasasinteiras,nonúmerodecasasfracionárias,ed[i]apartedonúmerodecimalnacasai.

Por analogia, considere agora essa forma para representar o sistema binário, com omesmoprincípiodecasasepesos.Porexemplo,vamosrepresentaronúmero101.112

Valor 1 0 1 1 1 Peso ... 22=4 21=2 20=1 2-1=1/2 2-2=1/4 ...Resultado 4 0 1 1/2 1/4

Resultado = 5 !!

Arepresentaçãomatemáticaé:

𝐵 = 2!×𝑏[𝑖]!

!!!!

Porémessaformaderepresentarnúmerosfracionáriostemproblemasdeprecisão56,porexemplo,pararepresentaronúmero0,2(1/5),nãoháformasprecisãoderepresentação,conformemostradonaTabela4.

Tabela4-aproximaçãode1/5

Representação Valor Decimal0,012 1/4 0,25100,00112 3/16 0,1875100,0011012 13/64 0,203125100,001100112 51/256 0,1992187510

2.5.2 RepresentaçãodepontoflutuantedeacordocomaIEEECom o padrão IEEE 754 de 1985, baseada num pequeno e consistente conjunto de

princípiostornouarepresentaçãoemnúmeroempontoflutuanteeleganteeentendível.

AIEEE754representaumnúmeronoformatoV=(-1)SxMx2eonde:

• S:sinaldonúmero,negativoédefinidoporS=1oupositivoS=05UmfatocuriososobreessaproblemaderepresentaçãofoinaguerradoGolfo,parasabermais

detalhespesquisenumsitedebuscapor“erroarredondamentomíssilPatriot”.6 Ainda podemos verificar problemas de arredondamento no Excel, para isso numa célula

qualquerinsiraaequação=(0,5-0,4-0,1).Oresultadodeveriaser0.

Page 14: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

• M:Mantissa,éarepresentaçãodapartefracionária• e:expoentedabase.

A IEEE 754 padroniza o formato em dois tamanhos, o ponto flutuante de Precisãosimples e o de Precisão dupla. Cada um com diferentes tamanhos de campos conformeapresentadorespectivamentenasfigurasFigura4Figura5

bits 1 8 23

+- Expoente Mantissa

Figura4-Pontoflutuantedeprecisãosimples

bits 1 11 52

+- Expoente Mantissa

Figura5-Pontoflutuantedeprecisãodupla

Oexpoenteédefinidoatravésdocalculocomobias,essenúmeroéobtidoatravésdonúmerodebitsnoexpoentecomafórmula2k−1–1.Paraocasodeprecisãosimples,obiasé28−1–1=127.Paraopontoflutuantedeprecisãodupla,211−1–1=1023.

2.5.3 Convertendoumnúmerofracionáriodecimalparabinário7De forma a exemplificar a conversão, vamos considerar uma definição própria do

tamanho do ponto flutuante, o sinal será de 1 bit, o expoente de 3 bits (bias igual a 3) emantissa de 4 bits, totalizando 8 bits para armazenar o número que será nosso exemplo:2,625:

1. Paraaparteinteira,realiza-seaconversãonormaldedecimalparabinário:210=102

2. Paraapartefracionária,faz-sesucessivasmultiplicaçõesdapartefracionáriapor2:

0,625×2=1,25 1 Retiraonúmerointeiroecontinuaaconta0,25 ×2=0,5 0 Gerou0,continuando...0,5 ×2=1,0 1 Gerou1erestou0,paraaqui.

Portanto,0,62510=0,1012

3. Juntandoaparteinteiraeapartefracionária,temos10.10124. Adicionandooexpoente:10.1012×205. Normalizando:10.1012×20=1.01012×21(verifiquequefoideslocadooponto

decimalumacasaparaadireita,porisso,oexpoenteaumentouumacasa).6. Mantissa:01017. Expoente:1+3=410=10028. Bitdesinalpositivo:09. Resultadoé01000101,emhexadecimal4516

7Formadeconversãoretiradodehttp://sandbox.mc.edu/~bennet/cs110/flt/dtof.html

Page 15: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Vamosparaoutroexemplo,converteronúmero-39887.5625paraoformatoIEEE754deprecisãosimples:

1. Aparteinteira:3988710=100110111100111122. Afração0,562510=0,10012

0,5625×2=1,125 1 Generate1andcontinuewiththerest.0,125 ×2=0,25 0 Generate0andcontinue.0,25 ×2=0,5 0 Generate0andcontinue.0,5 ×2=1,0 1 Generate1andnothingremains.

3. Aconversãocompleta:39887,562510=1001101111001111,100124. Normalizando:1001101111001111,10012=1,00110111100111110012×215.5. Mantissa é 00110111100111110010000, o expoente é 15 + 127 = 142 =

100011102,bitdesinalé1.6. Portanto39887,5625é11000111000110111100111110010000=C71BCF9016

2.5.4 Convertendoumnúmerofracionáriobinárioparadecimal.Oprocessoinverso,paraconverterC4A42A0016paradecimal,atravésdanormativaIEEE

deprecisãosimples:

1. Convertendo:C4A42A0016=1100010010100100001010100000000022. Sinal:1=negativo3. Expoente:100010012=137–127(bias)=104. Mantissa:010010000101010000000002=0,28253173828125105. Aplicandoamantissaeoexpoente=1,28253173828125x210=-1313,312510

Atividade:Converta os seguintes números fracionários em decimal para binário,utilizando a formatação de 8 bits de ponto flutuante (1 bit de sinal, 3 deexpoentee4demantissa)

a) 1,810b) 5/32

c) -1,2510d) 0,7510

Atividade:Converta os seguintes números fracionários em decimal para binário,utilizandoaformataçãode32bitsdepontoflutuantedaIEEE

a) 1,810b) 5/3210c) -1,2510d) 0,7510

e) 1/910f) -1/510g) 0,110h) 1,9910

Atividade:

Page 16: Sistema de numeração decimal · 2017. 5. 24. · de informação através da notação binária (dois estados: ligado ou desligado, 0 ou 1). 1.1 Sistema de numeração decimal Estamos

Converta os seguintes números fracionários em hexadecimal para decimal,utilizandoaformataçãode32bitsdepontoflutuantedaIEEE

a) 42E4800016b) 3F88000016c) 40490FDB16

d) 0080000016e) C7F0000016f) C02DF85516