9 votos

Algunas dudas en complemento a 2

Yo estoy haciendo una pregunta en la que tenemos que encontrar el complemento a 2 de 43. Sé que para encontrar el complemento a 2 tenemos que encontrar el complemento a 1 y, a continuación, agregue 1 para obtener complemento a 2.

Así que aquí está cómo lo que estoy haciendo -

Valor binario de 43 es 00101011. (Tenemos que usar 8 bits para representar)

Complemento a 1 es 11010100.

Complemento a 2 es 11010101.

Pero la respuesta original es 00101011.

He utilizado algunos convertidor en línea y se están dando la misma respuesta que el original. Pero yo no encontrar ningún error en mi método. Así que por favor me ayude a entender mi error y cómo llegar a la respuesta original.

Editar -

Este es el enlace a un convertidor en línea : haga Clic Aquí.

Actualización -

Como dijo un usuario que mi pregunta está mal o está mal en el libro de texto. No es. La misma formulación de la pregunta anterior en mi pregunta. Aquí está el enlace de la que yo soy la solución de esta pregunta antes.

Haga clic aquí para ver.

Y escribí la respuesta posterior de este enlace. Como se puede ver en mi respuesta a continuación.

9voto

Lisa Puntos 439

Ustedes estaban en lo correcto y el libro de texto sigue siendo incorrecto. No es de extrañar dado lo que un slapdash trabajo que hicieron de poner juntos. Estoy citando a partir de la segunda página que enlaza:

Explicación: En$2$'s representación complementaria, los números positivos se representan como su representación y los números negativos se representan por primera haciendo $1$'s del complemento, a continuación, la adición de $1$ al resultado.

Aviso de la falta de un espacio entre "en" y "$2$'s"? Sólo ese pequeño detalle me da serias dudas en cuanto a si saber siquiera de qué demonios están hablando.

Bueno, para ser justos, ellos saben lo que están hablando, solo que no sé cómo explicarlo, simplemente y de forma correcta. "Representado como su representación"? ¿Y eso qué significa? "Y los números negativos se representan por primera haciendo $1$'s complemento" ¿sobre qué? En su valor absoluto o en algunos de números aleatorios?

Por lo $43$ es representado como $00101011$.

Tenga en cuenta que opción representa $-43$.

Se dice que el $00101011$ representa tanto $43$ e $-43$? Tal vez tenían intención de escribir algo entre estas dos oraciones, pero que no llegan a hacerlo.

La respuesta es, de hecho, $11010101$ como lo tienes, lo que significa que $-43$ en un firmada $8$-representación de bit usando el complemento a dos, o $213$ en un unsigned $8$-bits de la representación. Si querían $00101011$, que debería haber pedido el la $8$-bits de la representación de $43$.

Y por último, ¿qué tipo de material se supone que hay que leer y entender antes de tomar la prueba? He aquí una explicación de complemento a dos de la Universidad de Cornell: https://www.cs.cornell.edu/~tomf/notes/cps104/twoscomp.html

Aunque el autor de esas notas Cornell dice que el tema no necesita una larga explicación, creo que usted encontrará su explicación mucho más detallada, correcta y fácil que se entienda que a nada en GeeksForGeeks.org.

Y si después de leer que usted todavía tiene "dudas", pruebe los siguientes ejercicios con el lápiz sobre el papel:

  • $00000101 + 00000011$
  • $11010101 + 00000011$
  • $11011000 - 00000011$
  • $11010101 \times 11111111$

7voto

neurino Puntos 3207

Estás en lo correcto. Aquí los detalles.

Vamos a ir desde el otro lado, que es, vamos a empezar a partir de la definición de la notación de complemento a dos, de modo que podamos determinar qué número está representado por un determinado complemento a dos de la notación y, a continuación, encontrar la relación inversa.

Definición de la notación de complemento a dos.

$n$-poco la notación de complemento a dos de un entero $a$ es una representación de un entero a través de una secuencia ordenada de $n$ bits de $\{t_i\}_{i=0,\ldots,n-1}$ tal forma que: $$a=-t_{n-1}2^{n-1}+\sum\limits_{i=0}^{n-2}t_i2^i\tag{1}$$

Por lo que esta relación da un mapa: $\phi_{2\text{'s}}:\{0,1\}^n\rightarrow[-2^{n-1},2^{n-1}[\cap\mathbb{Z}$

Este mapa es invertible, es decir, dado un número entero en el rango de $[-2^{n-1},2^{n-1}[$, hay una y sólo una $t\in\{0,1\}^n$ tal que $(1)$ es verificada.

Vamos a hallar su inversa.

Observe que $(1)$ puede ser reescrita como: $$a=-t_{n-1}2^n+\sum\limits_{i=0}^{n-1}t_i2^i\tag{2}$$

Se sabe que por entero sin signo notación binaria de un número entero es decir una representación de un entero a través de una secuencia ordenada de $n$ bits de $\{u_i\}_{i=0,\ldots,n-1}$ dado por el inverso de un mapa:

$$\phi_b:\{0,1\}^n\rightarrow[0,2^n[\cap\mathbb{Z},~u\mapsto \phi_b(u)=\sum\limits_{i=0}^{n-1}u_i2^i$$

Así, en $(2)$ el segundo término en el lado derecho es un entero $b$, $0\le b<2^n$ cuya unsigned notación binaria coincide con el complemento a dos de la notación de $a$: $\phi_{2\text{'s}}^{-1}(a)=\phi_b^{-1}(b)$. A continuación, a partir de aquí y $(2)$ nuevo, de ello se sigue que la invertida mapa está dada por:

$$\phi_{2\text{'s}}^{-1}(a)=\phi_b^{-1}(a+t_{n-1}2^n)\tag{3}$$ pero hay todavía desconocido $t_{n-1}$.

Así que a partir de $(2)$, $t_{n-1}=0$ es equivalente a decir que el $a\ge0$ porque $b\ge0$ $t_{n-1}=1$ es equivalente a decir que el $a<0$ porque $b<2^n$

En la final $(3)$ está totalmente determinado por:

$$\phi_{2\text{'s}}^{-1}(a)=\begin{cases}\phi_b^{-1}(a)&a\ge0\\\phi_b^{-1}(a+2^n)&a<0\end{cases}\tag{4}$$

Conclusión.

Esto explica por qué usted no tiene que "modificar" números positivos, simplemente extraer la notación binaria; y por qué en vez necesite agregar $2^n$ a los números negativos y el extracto de la notación binaria (o en dos pasos, uno complementar cada uno de los bits de su notación binaria y, a continuación, agregue $1$)

6voto

The Short One Puntos 61

Mwahaha! Usted se confundió entre el$43$$-43$. Disfruto en tales confusiones.

Para añadir a la confusión, el complemento de un número entero positivo es el mismo como una operación XOR bit a bit de ese entero con $2^\mathcal{L} - 1$ donde $\mathcal{L}$ es el número de bits, $8$ en este caso.

Así, XOR bit a bit($+43, +255$) nos da $212$ o $11010100$ en binario. Así que ahora usted está en lo correcto. A continuación, añadimos $1$ conseguir $11010101$, $213$ o $11010101$ en un byte sin signo. Pero si eso es un firmada byte, entonces $11010101$$-43$.

Vaya de nuevo a su convertidor en línea, y tratar primero con $-43$ y, a continuación,$+43$. Si se ha programado de manera adecuada y que de entrada los números correctamente, debe darle a $11010101$ para el primero y el $00101011$ para el último.

Si estás en Windows, pruebe la Calculadora de Windows en Modo de Programador (Ver > Programador). Debería darte $101011$ $43$ $1111111111111111111111111111111111111111111111111111111111010101$ $-43$ (se puede elegir entre bytes, palabras, palabras de doble y cuádruple palabras).

5voto

Evan Trimboli Puntos 15857

Creo que su libro de texto no la palabra de la pregunta con suficiente claridad.

¿Cuál es la 8 bits de la representación de los 43?

La respuesta es entonces 00101011.

¿Cuál es la 8 bits de la representación de $-43$ usando el complemento a dos?

Entonces la respuesta es 11010101, así como descubriste. Para cualquier otro fraseo de la pregunta, usted probablemente puede convencer al profesor para darle el punto.

Observe también que usted puede obtener el número original de nuevo aplicando el mismo proceso: un complemento de 11010101 es 00101010, a continuación, agregue 1 y obtener 00101011.

Uno más para comprobarlo, tomando 256 (o 65536 o 4294967296 o 18446744073709551616 según corresponda) y se resta el entero positivo. El unsigned representación de este número debe ser el mismo que el firmado con la representación de la entero negativo.

Es uno de tus dudas ¿por qué nos molestamos con este sistema tan complicado? ¿No sería más fácil establecer el bit de signo según sea necesario? por ejemplo, $-43$ sería 10101011.

Pero entonces tendríamos dos ceros: 00000000 y 10000000. Una de las cosas más comunes que hacen los ordenadores de todo el tiempo es comprobar si un número dado es 0. Pero si es 0 puede tener dos representaciones distintas, las cosas se ponen más complicadas.

La asimetría creado por el complemento a dos (el byte se ejecuta de $-128$ a 127 en lugar de 128) es un precio muy pequeño a pagar por la comodidad de ser capaz de comprobar que un número dado es 0 simplemente comprobando todos los bits están apagados.

4voto

Yves Daoust Puntos 30126

El $8$ bits en complemento a dos de $$43_d=00101011_b$$ is undisputably $$256_d-43_d=213_d=11010101_b.$$

Su inapprehension procede del hecho de que este "Complemento a Dos de la" Calculadora de no calcular el complemento a dos de un número, pero muestra que el complemento a dos de la representación de ese número. Es decir, $0\to00000000,1\to00000001,-1\to11111111\cdots$

Como el cambio de signo de un número que corresponde a su complemento a dos, correctamente obtener $-43_d\to11010101_b$.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X