5 votos

Qué algoritmo se puede utilizar para agregar negadecimal números?

Estoy tratando de averiguar cómo agregar negadecimal los números de mano.

Puedo agregar normal números decimales utilizando un algoritmo que aprendí en el kinder: comienza con los dígitos menos significativos, agregarlos, llevar, mover a la izquierda, repita.

 Carry: 1111 1
 First:  156739
Second:  948352
        =======
        1105091

El mismo algoritmo, sin embargo, da resultados incorrectos cuando se intenta agregar negadecimal números.

Si puedo añadir estas dos negadecimal números juntos, este debe ser el resultado:

 First:  156739
Second:  948352
       ========
       19083071

pero no estoy seguro de qué algoritmo que puede utilizar para lograr este resultado. ¿Cómo puedo agregar dos negadecimal números?

6voto

Reto Meier Puntos 55904

Estás muy cerca. Mira el 1 lugar. En base 10, que diría $9+2=11$, por lo que ponemos un 1 y llevar a un 1 a la 10.

En base -10, nos debe de llevar un -1 en el -10 lugar! Así que cuando usted tiene un acarreo, que acaba de llevar un -1 en el siguiente lugar.

Esto sólo se hace complicado si el siguiente lugar sólo tiene 0 en él. En este caso, ya que -1 = 19 (base -10), que iba a escribir 9 y llevar un +1 en el siguiente lugar. (En esencia, esta es una de pedir prestado; desde bases negativas son capaces de representar números positivos y negativos sin una explícita signo, la suma y la resta son la misma operación, así que tiene sentido que el algoritmo tiene que incluir lleva y toma prestado.)

Mediante este procedimiento, me dieron la respuesta correcta para su problema de ejemplo.

2voto

Mike Powell Puntos 2913

Supongo que por negadecimal, te refieres a base $-10$.

La adición algoritmo es como de costumbre (para el tratamiento de dígitos como positivo), excepto que:

  • lleva son negativos: si usted tiene un acarreo de $1$ en algunos columna, se debe restar $1$ a partir de la suma de los dos dígitos en la columna

  • si alguna vez te has $-1$ como resultado en algunos columna, entonces usted debe poner abajo de $9$ y llevar a $-1$. (Que es, en la siguiente columna, tratar el llevar de $1$ positivo).

Por su ejemplo (he añadido ceros a la izquierda para hacer que la llevan en el último paso más clara, y también se utiliza " x " para presentarse a un acarreo negativo de 1):

 Carry: x1 11 1
 First:  0156739
Second:  0948352
        ========
        19083071

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