• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Nazgulled

Ajuda com binário (complemento pa 1 e 2, excesso)

38 mensagens neste tópico

Como uma imagem vale por mil palavras, vejam a seguinte:

1404434342.jpg

1) Isso é a minha resposta aos exercícios e gostava de saber se está tudo correcto ou não. Se estiver então o meu raciocínio esta correcto. Se não, podem-me explicar o que fiz mal e como se faz direito?

2) Podem ver que o exercício #6, falta-lhe umas respostas. Não as sei responder e gostava que me dessem as respostas bem como me explicassem como chegaram a essas mesmas respostas.

Espero que alguém me possa ajudar pois isto está a dar-me a volta a cabeça...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A discussão sobre isto na TechZone já está bastante acesa pelo que não será necessário manter outra aqui em paralelo. Já tenho grandes das minhas dúvidas respondidas. Podem apagar ou fechar este tópico.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estive para te responder mas um problema de DNS impediu-me de ver as imagens, depois passou-me..

Não há necessidade de apagar o tópico, se alguém tiver uma dúvida semelhante pode-se aproveitar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olha, eu ia para reponder,mas quando vi o conteudo do tópico e constatei quão complicado é deixei-me disso, porque não me lembro de nada disso de cabeça.

Sinceramente não sei qual é a dos professores ao enviarem exercícios deste tipo. Isto é claramente incentivar ao empinanço cego.

Eu já dei estas porras todas e na altura sabia responder a isto tudo de imediato. Agora ja não me lembro bem como funcionam coisas como complemento para 1, etc.

Mas sinceramente, se tivesse que usar isto ia ler bibliografia sobre isto, é para isso que ela existe.

Isto é estar a tentar complicar ao máximo uma coisa que é simples, mas como é simples, mas o professor não quer dar notas altas aos alunos, então complica-se e anda-se se for preciso meio semestre a batalhar em pentelhices e complicações em vez de ensinar mais coisas aos alunos e/ou mostrar como este tipo de calculo aparece.

Nazgulled, já agora afixa aí o link para futura referencia.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Qual é a necessidade do highlight?

Foi o que link que tive quando usei a procura :thumbsup:
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto é estar a tentar complicar ao máximo uma coisa que é simples, mas como é simples, mas o professor não quer dar notas altas aos alunos, então complica-se e anda-se se for preciso meio semestre a batalhar em pentelhices e complicações em vez de ensinar mais coisas aos alunos e/ou mostrar como este tipo de calculo aparece.

Isto é complicar? Isto é do mais fácil que se encontra na cadeira.

Não é por nada, mas está a falar sem conhecimento do assunto, e parece-me que a assumir coisas erradas. Não me parece que passem 1/2 semestre de volta disto (a menos que as coisas tenham mudado muito desde o meu tempo, onde se perdia uma ou duas semanas nisto), e pelo menos no meu tempo, era explicado, por exemplo, o porquê de existirem as várias alternativas de representação e coisas do género (embora quase ninguém preste atenção a isso).


Nazgulled, não tem esses exercícios resolvidos? Se quiseres posso te arranjar (pelo menos dão para confirmar os resultados).

O Proença no meu ano tinha uns ficheiros HTML de auto-avaliação, que para além de terem exercícios deste género resolvidos, tinham a explicação, e pelo menos para mim, foram bastante úteis.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Este ano não é o Proença que esta a gerir a cadeira em LEI, mas as fichas são as mesmas. No entanto, esses ficheiros de HTML, nunca os vi a frente em 3 anos desta cadeira :X

Mas se tem a correcção e explica as cenas, é capaz de dar jeito, principalmente para os de vírgula flutuante que estou a ter algumas dificuldades em entender... E ainda nesta ficha que tenho exposto problemas aqui, ainda me falta um exercício que estou mesmo a nora..

Se puderes mandar isso por mail agradecia, vê qual é no Messenger :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pessoal, pequeno problema... Ali o Rui Carlos arranjou-me as resoluções destes exercícios feitas pelo prof que fez os exercícios e algumas coisas estão mal.

Exercício 3, alínea d: O meu resultado é 395, e sempre me confirmaram como correcto, mas o valor correcto (segundo as resoluções) é 117.

Exercício 6, alínea a e b, ii e iii: Supostamente, segundo o que me disseram, a gama de valores varia entre -2^(n-1) e +2^(n-1)-1. No entanto, os resultados na resolução é igual ao i. Ou seja, varia entre -2^(n-1) e +2^(n-1).

Em que é que ficamos? Relativamente ao exercício 3, não sei, gostava de ajuda. Quanto ao 6, acho que a resolução está errada, porque já vi várias tabelas e realmente o complemento para 2 e excesso variam ambos entre -8 e 7 (dando exemplo de 4 bits).

Se me puderem esclarecer...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exercício 3, alínea d: O meu resultado é 395, e sempre me confirmaram como correcto, mas o valor correcto (segundo as resoluções) é 117.

Deves estar a falar da alínea (e), não?

Acho que é o número em binário menos o excesso, certo? Ou seja, se não me enganei:

512+64+32+16+4+1 - 512 = 117

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

A questão prende-se com a utilização do nº representado em inteiro sem sinal (629) ou sinal+amplitude (-117), para fazer os cálculos em excesso. Essa é uma dúvida que tenho...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Exercício 6, alínea a e b, ii e iii: Supostamente, segundo o que me disseram, a gama de valores varia entre -2^(n-1) e +2^(n-1)-1. No entanto, os resultados na resolução é igual ao i. Ou seja, varia entre -2^(n-1) e +2^(n-1).

Se calhar não estás a prestar atenção ao facto de teres intervalos abertos e fechados (por exemplo, [1,4[, inclui o 1 mas não o 4).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Em relação ao exercício 6, basta ver: se tens n bits quantas "coisas" diferentes podes representar? 2^n não temos dúvidas. Ora eles dizem que podes representar entre -2^(n-1) e 2^(n-1), ou seja, 2^(n-1) números negativos+ 2^(n-1) números positivos + 1 zero = 2^n + 1, ou seja, algum génio consegue representar 2^n + 1 números com n bits, espectáculo! =P

Em relação ao 3.d) volto a dar-lhe... O primeiro bit significa -512, nos restantes tens o número 117, -512 + 117  = -395.

P.S.: O Rui Carlos é capaz de ter razão.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tens razão, não reparei isso dos intervalos... E depois há outro pormenor, as tuas resoluções, já são de há 4 anos e o ii neste caso é complemento para 1, na minha ficha é para 2. Não tinha reparado nesse pormenor ate agora...

A questão prende-se com a utilização do nº representado em inteiro sem sinal (629) ou sinal+amplitude (-117), para fazer os cálculos em excesso. Essa é uma dúvida que tenho...

Acho que a minha dúvida é a mesma...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tanto quanto sei, na notação em excesso, retiramos o excesso, ao número que resulta da tradução directa de binário para decimal, retiramos o excesso (o que resulta na grande vantagem desta notação, que é a relação de ordem dos números que são representado, ser igual quer em binário quer em decimal, i.e., se x é maior do que y, a representação em binário de x será um valor maior do que a representação em binário de y).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sabes o que me está a confundir a sério?

Tipo, olha para o exercício 2 e temos o valor -233. E o seu excesso é 01 0001 0111 (279). Sendo o excesso 2^(n-1) = 512, isto dá: 279-512 = -233. O que está correcto.

Mas ao olharmos para o exercício 3, temos o valor -117 (vou esquecer o inteiro sem sinal por agora) e pela lógica do anterior que tem o mesmo excesso, mesmo número de bits, seria 01 1000 1011 (395), porque 395-512 = -117. Ou seja, o meu resultado inicial...

Mas o resultado na resolução está a ignorar o valor com sinal. Ai é que me esta a falhar porque num exercício não ignora e no outro ignora... Um deles tem de estar mal..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

117 = 629 - 512

é análogo a

-233 = 279 - 512

Os valores antes do igual são os valores que obtemos se interpretarmos os valores como estando representados em excesso, e os valores a bold são aqueles que obtemos interpretados como binário simples.

No 3, o -117 não é para aqui chamado, pois já é resultando duma interpretação numa determinada notação. O que usas é o resultado directo da transformação em binário.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Continuas a usar um valor num sitio e outro valor no outro. Tipo, no exercício 2, usas o inteiro com sinal (-233) para calcular o excesso e no exercício 3 usas o inteiro sem sinal (629) para calcular o excesso.

Tanto quanto eu consigo perceber, das dumas uma: Para ambos, ou usas o inteiro com sinal (Exercício 2: -233; exercício 3: -117) ou usas o inteiro sem sinal (Exercício 2: 745; exercício 3: 629).

Não consigo perceber a lógica disto... Não consigo perceber porquê que fazes de uma maneira num exercício e de outra diferente noutro...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O -233 e o 629 não estão relacionados!

O -233 do exercício 2, está relacionado com o 117 do exercício 3 (são os valor que resultam de interpretar um conjunto de bits como estando representados em excesso).

O 279 do exercício 2, está relacionado com o 629 do exercício 3 (são os valores que resultam de interpretar um conjunto de bits como binários simples).

No segundo conjunto, nenhum valor tem sinal, no primeiro, ambos poderiam ter.

Aquilo que estás a fazer em cada um dos exercícios, são coisas inversas. É por isso que num exercício se faz de uma maneira, e no outro, de outra (uma é o inverso da outra). Daí, no 2 queres calcular o 279, e no 3 queres calcular o 117, mas os valores não significam o mesmo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Desculpa mas não estou a conseguir perceber... Para mim, tas a fazer exactamente a mesma coisa em ambos exercícios, a única diferença é que no 2º tens logo o valor em decimal e no 3º tens um valor em binário que ainda tens que converter para decimal com e sem sinal.

O que para mim vai dar ao mesmo... Tu no 3º exercício, podes ignorar o 629 do valor sem sinal, isso não passa de uma representação que o prof pediu para o valor dado em binário.

Ignora o valor dado em binário e ignora o 629. Eu agora dou-te o valor -117 e digo para representares em S+M, C/1, C/2 e Excesso. O teu resultado e o teu raciocínio de desenvolvimento vai ser exactamente o mesmo do exercício 2 e os teus números em binários vão ser exactamente aqueles que estão respondidos no exercício 3 (talvez com excepção no excesso).

Em ambos tens um valor negativo onde o prof pede para representares esse valor em várias formas. O facto de ter pedido para representares o valor sem sinal, foi só mais uma alínea...

É assim que eu vejo as coisas e não consigo perceber a tua lógica... Não me consigo explicar melhor que isto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais uma vez não consegui perceber o teu post, mas pronto...

Resumindo, os métodos de conversão decimal/excesso são, por exemplo:

decimal -> excesso:

somar o excesso

converter para binário

excesso -> decimal

converter para decimal

subtrair o excesso

Exercício 2d:

converter para excesso

valor: -233

somar o excesso: -233 + 512 -> 279

converter para binário: 0100010111

Exercício 3e:

converter para decimal

valor: 1001110101

converter para decimal: 629

subtrair o excesso: 629 - 512 -> 117

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas lá está, tu tens o -233 no exercício 2, mas no 3 o prof dá-te antes um valor em binário que é 1001110101 e tu passaste para decimal ignorando o sinal. Porquê? Apeteceu-te? Ou porque uma das alíneas era representar esse binário sem sinal? Era uma alínea, uma representação, nada mais.

Exercício 2:

Valor dado: -233 (10 1110 1001)

Ignorando o sinal: 512+128+64+32+8+1 = 745

Exercício 3:

Valor dado: 10 0111 0101 (-117)

Ignorando o sinal: 512+64+32+16+4+1 = 629

Esquece o inteiro sem sinal no exercício 3, esquece-o, faz de conta que ninguém pediu isso. Para mim, o exercício 3 é exactamente o mesmo que o segundo, com duas diferenças: a) valor diferente. :P um é dado em decimal o outro é dado em binário.

Imagina que no exercício 3 te dei o valor -117 e ignora a parte em que tens de representar sem sinal. O que ias fazer? Exactamente o mesmo que no exercício 2.

10 0111 0101 = -117, quem é que te pediu para ignorares o sinal? No exercício 2 não ignoraste. Porquê? Porque não pedia? Porque o valor decimal foi dado já como negativo? Também no exercício 3, exactamente a mesma coisa, a única diferença é que tens o valor em binário e não em decimal. Mas o bit mais significativo é 1, logo é negativo e não contabilizas o peso desse bit.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas lá está, tu tens o -233 no exercício 2, mas no 3 o prof dá-te antes um valor em binário que é 1001110101 e tu passaste para decimal ignorando o sinal. Porquê? Apeteceu-te?

No 1001110101 tens lá algum '-'? Se não tens, matematicamente aquilo é um valor positivo. O sinal só existe se interpretares o valor como estando representado numa notação específica (S+M, C p/1,2, etc.), numa visão estritamente matemática (que é suficiente aqui), o sinal é um '-' ou um '+' e não um bit. A notação em excesso é completamente independente das outras. Esquece que existe S+M, C p/1, etc. Estás a fazer as coisas mal, pois estás a misturar as notações.

Repara no que está a bold no meu post anterior. Aquilo é tudo o que precisas de saber para resolver os exercícios, tenta limitar-te àquilo.

Imagina que no exercício 3 te dei o valor -117 e ignora a parte em que tens de representar sem sinal. O que ias fazer? Exactamente o mesmo que no exercício 2.

Sim.

Somar excesso: -117 -> -117 + 512 = 395

Converter para binário: 395 -> 0110001111

Ou seja, -117, em excesso dá: 0110001111

E já agora, converter 0110001111 de excesso para decimal

Converter para decimal: 0110001111 -> 395

Subtrair o excesso: 395 -> 395 - 512 = -117

PS: Repara que os valores que convertes para binário são sempre positivos (-117 dá 395 que é positivo), ou seja, não precisas do sinal para nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Somar excesso: -117 -> -117 + 512 = 395

Converter para binário: 395 -> 0110001111

Ou seja, -117, em excesso dá: 0110001111

Mas isto é exactamente o que estou a tentar dizer... O -117 em excesso da 0110001111 quem em decimal é 395. Mas nos pdfs que me arranjaste, não é esse o resultado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora