CódigosEspeciaisTiagoDezuoDEE-EngenhariaElétrica|CCT
ALB0001–ÁlgebradeBoole|JOINVILLE
• Representaçãodenúmerosemdiversasbases• Conversãodebases• OperaçõesaritméMcasbásicas
• Adição• Subtração• MulMplicação• Divisão
• Códigosespeciais
Introdução
2
contextualização
• NúmerosReais• PontoFlutuante
• Armazenamentoemfloats• BCD• PontoFixo• Gray• Paridade
Introdução
3
sumário
• EmalgunsMposdecálculo,afaixadevariaçãodosnúmerosenvolvidosémuitogrande;
• Exemplo:• 1)Massadoelétron-daordemde9x10-28gramas• 2)MassadoSol-aproximadamenteiguala2x1033gramas• Faixadevariação:>1060• Exemploderepresentação(28dígitosàdireitadopontodecimale34
dígitosàesquerdadomesmo)
1)0000000000000000000000000000000000.0000000000000000000000000009
2)2000000000000000000000000000000000.0000000000000000000000000000
• Comorepresentaressesnúmerosnumcomputador?
Númerosreaisrepresentação
4
• Formausualderepresentaçãodenúmerosreais:parteinteira,vírgula(ouponto),partefracionária.
• Estarepresentação,emboracômodaparacálculosnopapel,nãoéadequadaparaprocessamentonocomputador.
• Exemplo:onúmero45,724podeserexpressocomo:• 45,724x100
• 45724x10-3
• 0,45724x102
Númerosreaisrepresentação
5
• ÉnecessárioousodeumsistemaderepresentaçãodenúmerosnoqualafaixadevariaçãosejaindependentedonúmerodedígitossignificaMvos
• Umamaneiradesepararafaixadevariaçãodosnúmerosdesuaprecisãoconsisteemrepresentá-lonanotaçãocienofica
n=fx10e
f-fraçãoousignificando(oumanMssa)e-expoente(inteiroposiMvoounegaMvo)
Númerosreaispontoflutuante
6
• Qualquernúmero(inteirooufracionário)podeserexpressonoformatonúmeroxbaseexpoente,podendo-sevariaraposiçãodavírgulaeoexpoente
• Denominação:representaçãoempontoflutuante(opontovariasuaposição,modificandoovalorrepresentado)
• Arepresentaçãopodevariar(“flutuar”)aposiçãodavírgula,ajustandoapotênciadabase
• Exemplos:• 3,14=0,314x10-1=3,14x100• 0,000001=0,1x10-5=1,0x10-6• 1941=0,1941x104=1,941x103
• AfaixadevariaçãodosnúmerosédeterminadapelaquanMdadededígitosdoexpoenteeaprecisãoédeterminadapelaquanMdadededígitosdosignificando.
Pontoflutuanterepresentação
7
• Usaumúnicodígitoantesdavírgula,diferentedezero*
• Narepresentaçãocomputacionaldenúmerosempontoflutuante,arepresentaçãonormalizadaé,emgeral,melhorqueanão-normalizada.• Formanormalizada:sóexisteumaformaderepresentarumnúmero• Formanãonormalizada:ummesmonúmeropodeserrepresentadode
diversasmaneiras
*PadrãoIEEE754paranúmerosempontoflutuante–significandonormalizado–começacomumbit1,seguidodeumponto(vírgula)binárioepelorestodosignificando(número=±1,__...x2exp)
PontoflutuanteFormanormalizada
8
• Nosistemabinário:• 110101=110,101x23=1,10101x25=0,0110101x27
• Númerosarmazenadosemumcomputador–osexpoentesserãotambémgravadosnabasedois• 110,101x(10)11=1,10101x(10)101=0,0110101x(10)111
• Representaçãonormalizada-háapenasum“1”antesdavírgula• 1,10101x(10)101
Pontoflutuanteilustração
9
• Númerodebitsdosignificando(precisão,pouf)
• Númerodebitsdoexpoente(e)
• Umbit(“0”para+e“1”para-)desinal(Mpicamenteoprimeiro,daesquerda)
• Ilustração(8bits)
• Expoentes:8combinaçõespossíveis(quenãoseguemaritméMcanormal)
Pontoflutuantearmazenamentoemfloats
10
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Sinal Expoente (+/-) Significando
Pontoflutuantearmazenamentoemfloats
000 Casoespecial001 Expoente-2
Abaixodezero010 Expoente-1011 Expoente0 Bias=polarização100 Expoente1
Acimadezero101 Expoente2110 Expoente3111 Casoespecial
• Exercício:realizeasconversõesabaixo:6,7510=(?)2(pontoflutuante,com8bits)
111010012(pontoflutuante,com8bits)=(?)10
11
Solução:• 6,7510=110,112=1,1011x22sinal:0expoente:210+310=x10,x10=510=1012significando:1011
Número(pontoflutuante,com8bits):010110112
• 111010012(pontoflutuante,8bits)
sinal:1expoente:1102=610,x10+310=610,x10=310significando:10012=
Número:(negaMvo)1,10012x23=1100,12=-12,510
Pontoflutuantearmazenamentoemfloats
12
• MaiornúmeroposiXvo(lembredobitescondido):01101111=>1,1111x23=1111,1=15,5decimal
• MenornúmeroposiXvo(lembredobitescondido):00010000=1,0000x2-2=0,01ou0,25decimal
• Combinaçõesespeciais• 000–representaçãoNÃOnormalizada• Significandopassaaser0,___...• Expoente(000)=-2• MenornúmeroposiXvopassaaser• 00000001=0,0001x2-2=2-4x2-2=2-6=0,015625decimal
Armazenamentoemfloatsobservações
13*AnormaIEEEprevêounderflowgradual(amanMssadeixadesernormalizada),permiMndoobternúmerosbemmaispróximosdezero.
• Combinaçõesespeciaisdosexpoentesnailustração
• 000–representaçãoNÃOnormalizada• 00000000=+0decimal
• 10000000=-0decimal(iguaisemcomparações)
• 111-representaçõesdeinfinito• 01110000=+infinito• 11110000=-infinito
• 11111000=indeterminação• Outrascombinações11111___=NotANumber(NANs)
Armazenamentoemfloatsobservações
14
• ArepresentaçãodenúmerosreaisempontoflutuanteéperfeitamenteadequadaparafazercálculosmatemáMcos,cienoficos,etc.
• Narepresentaçãoempontoflutuantepode-seterperdadeprecisãodonúmerorepresentadooumesmohaveránúmerosquenãopodemserrepresentadosporoverflow.
• PararepresentaçãodenúmerosemqueénecessáriomanterprecisãoatéoúlMmoalgarismo,nãoéadmissívelerroporaproximação.
Solução:usararepresentaçãoBinaryCodedDecimalouBCD(DecimalRepresentadoemBinário).
Armazenamentoemfloatsproblemas
15
• A ideia do BCD é representar, em binário, cada algarismo deformaqueonúmerooriginalsejaintegralmentepreservado.
• AcodificaçãoBCDnãopossuiextensãofixa,possibilitandorepresentarnúmeroscomprecisãovariável.Quantomaioronúmerodebits,maiorseráaprecisão.
• Exemplo:23910=(?)BCD• 2=00102• 3=00112e• 9=10012,• logo:239=001000111001(BCD)
CodificaçãoBCDrepresentação
16
RepresentaçãocodificaçãoBCD
• TabeladerepresentaçãodosnúmerosdecimaisemBCD
17
Decimal BCD Decimal BCD0 0000 8 10001 0001 9 10012 0010 10 Inválido3 0011 11 Inválido4 0100 12 Inválido5 0101 13 Inválido6 0110 14 Inválido7 0111 15 Inválido
• AcodificaçãodeumdígitoemBCDrequer4bits.
• ComoauMlizaçãodeapenas4bitsporbytenãoéeficiente,normalmentesãoarmazenados2dígitosBCDemumsóbyte.
• EstarepresentaçãoéchamadaBCDcomprimidooucompactado("packedBCD").
• Exemplo:1423910=(?)BCD
CodificaçãoBCDrepresentação
18
1 42 39 númerodecimal
00000001 01000010 00111001 RepresentaçãoBCDcomprimido
a+2 a+1 a endereço
• Entreosalgarismossemcódigoválidoemdecimal(códigosrepresentaMvosdosvaloresdecimaisde10a15),écomumuMlizaralgunsdelesparaindicarosinaldonúmero.
• HásistemasqueadotamaseguinteconvençãoparaosinaldosnúmerosrepresentadosemBCD:• 1100representaosinalposiMvo(“+”)• 1101representaosinalnegaMvo(“-”)
• Estarepresentaçãoaindaháumdesperdíciodecódigos,poisusa4bits(16representaçõespossíveis)pararepresentar10algarismos,6(ou4)códigosnãosãouMlizados
• Portanto,essarepresentaçãoémenoseficienteemrelaçãoàuMlizaçãodosrecursosdocomputadorquearepresentaçãoempontoflutuante
19
CodificaçãoBCDrepresentação
• Essemétodoconsistenadeterminaçãodeumaposiçãofixaparaavírgula
• TodososvaloresrepresentadosempontofixoparaumadeterminadaoperaçãopossuemamesmaquanMdadedealgarismosinteiros,bemcomoamesmaquanMdadedealgarismosfracionários.
• Exemplo:1101,101 1110,001 0011,110
• Asposiçõesmaisadotadasparaavírgulasão:• Naextremidadeesquerdadonúmero–nessecaso,onúmero
étotalmentefracionário• Naextremidademaisadireitadonúmero–nessecaso,o
númeroéinteiro20
Pontofixorepresentação
• Emqualquerdessescasos,avírgulanãoestaráfisicamenterepresentadanamemória
• Aposiçãodavirgulaédeterminadanadefiniçãodavariável,realizadapeloprogramador(oupelocompilador),eosistemamemorizaessaposição,masnãoarepresentafisicamente
• Namaioriadaslinguagensdeprogramaçãoenossistemasdecomputaçãoemprega-searepresentaçãodenúmerosempontofixoparaindicarapenasvaloresinteiros
• Númerosfracionáriossão,nessescasos,representadosapenasempontoflutuante.
• ExemplosdeMposdedadosnalinguagemPascal:• INTEGER->pontofixo• REAL->pontoflutuante
21
Pontofixorepresentação
• Os sistemas digitais operam em altas velocidades e reagem avariações que ocorrem nas entradas digitais. A fim de reduzir aprobabilidadedeumcircuitodigital interpretarmalumaentradaqueestámudando,desenvolveu-seoCódigoGray.
• PrincipalcaracterísMca:mudaapenasumbitentredoisnúmerossucessivos.
CódigoGrayrepresentação
22
Decimal Binário Gray Decimal Binário Gray0 0000 0000 8 1000 11001 0001 0001 9 1001 11012 0010 0011 10 1010 11113 0011 0010 11 1011 11104 0100 0110 12 1100 10105 0101 0111 13 1101 10116 0110 0101 14 1110 10017 0111 0100 15 1111 1000
23
CódigoGraygeraçãodalista
• Espelhamento
• Operação“ouexclusivo”
Binário(A) Deslocado(B) AXORB
00 00 00
01 00 01
10 01 11
11 01 10
Listade2bits 00,01,11,10Reflete 10,11,01,00
Concatena 00,01,11,10 10,11,01,00coloca0aosiniciais 000,001,011,010 10,11,01,00coloca1nosfinais 000,001,011,010 110,111,101,100
• AaplicaçãomaiscomumdocódigoGrayénoscodificadoresderotaçãodeeixo(encoders)
• EssesdisposiXvosproduzemumvalorbinárioquerepresentaaposiçãodeumeixomecânicoemrotação.
24
CódigoGrayaplicaçãocomum
• UMlizadonatransmissãodedadosbinários:operaçãomaiscomumemsistemasdecomunicação• Sistemacelular• Rededecomputadores
• Otráfegodeinformaçãoentretransmissor/receptorestásujeitoaocorrênciadeerrosprovocadosporruído,oquelevaàinterpretaçãoerrôneadosinalrecebido
ParidadecaracterísMcas
25
• Bitdeparidade:bitextraanexadoaoconjuntodebitsparaindicaroMpodeparidade:• Par:númerode1'sdeveserpar(contandocomobitde
paridade)• Ímpar:númerode1'sdeveserímpar(contandocomobitde
paridade)• Ex.:
• CódigoASCIIpara'C'–1000011.Tem3bits1s.Paraquetenhaparidadepar,1éacrescentado.
11000011bitdeparidade
26
ParidadecaracterísMcas
• Usadoparadetectarerrosdeumbit,quesãomaisprováveisdeocorrer
• DevehaverconcordânciaentreTXeRXpeloMpousado(parouímpar)
27
ParidadecaracterísMcas
• NúmerosReais• PontoFlutuante
• Armazenamentoemfloats• BCD• PontoFixo• Gray• Paridade
Códigosespeciais
28
lembrando