Sumas en sistema binario

Arrojeria, Eustakio

Elhuyar Zientziaren Komunikazioa

Lizaso, Pili

Informatika Saila

Elhuyar Fundazioa

Despois de ver as conversiones entre bases en sistemas de numeración (ELHUYAR. Vimos a Ciencia e a Técnica no número 27) e paira entender o que supón traballar no sistema binario, nesta ocasión propómosvos: Suma dos números na base 2 ou sistema binario.

Quizais o primeiro que se vos ocorra é pasar os números á base 10, realizar a suma no sistema decimal e despois pasar o resultado á base 2, pero aínda que o resultado obtido sexa o correcto, esta non sería a vía máis correcta. As sumas pódense realizar tamén no sistema binario e é o que vos pedimos aquí.

Á hora de realizar as sumas no sistema decimal, pór todos os primeiros números á vez, é dicir, os primeiros á altura dos uns, os decimais a par do dez, etc. e despois empezamos a realizar a suma pola columna da dereita, gardando un número paira a cabeza (paira a columna seguinte) cada vez que pasemos por dez.

No sistema binario hai que facer algo parecido. Iso si, cada vez que pasemos de dous neste sistema deberemos gardar un máis paira a cabeza.

Vexamos un exemplo:

Supoñamos que temos 4 sumandos de 6 díxitos. A suma sería:


Partes do programa:

  • 10-110: Selecciónase o número de díxitos dos sumarios (N1) e o número de sumandos (N2). Desta forma o usuario definirá a dificultade da suma.
  • 120 a 180: Extráense aleatoriamente N2 números binarios formados por N1 díxitos.
  • 190-360: Realízase a suma deixando o resultado na variable SUMA$. A suma comezará pola columna dereita (200). Á hora de unir una columna, haberá que ter en conta se hai algo primeiro paira a cabeza (210). Dado que una vez calculada a suma de cada columna, a que se debe gardar paira o resultado xeral pode ser Ø ou 1, deberase utilizar a función MOD 2 (240). Cada vez que pase de Bit (ou de Ø) engadirase 1 á levada. A adición de 1 a un número binario supón que, comezando pola dereita, o 1 substitúa Øaz por 1 cando se atopa primeiro Ø (260-310).J. Engadirase ao resultado obtido na columna “Ø” ou “1” hora (340). Se despois de unir a columna J (esquerda) hai algo paira a cabeza, haberá que engadir á cadea de suma pola esquerda (360).
  • 370-410: Presentación da suma en pantalla.
  • 420-480: Gardar o introducido ata que o usuario pulse <RETURN> na variable SAR$.
  • 500-570: Verificación do resultado introducido.
  • 580-630: Posibilidade de continuar ou saír do programa.
Babesleak
Eusko Jaurlaritzako Industria, Merkataritza eta Turismo Saila