Je dois sommer les nombres binaires, j'utilise la boucle inverse comme nous somme réellement en utilisant le papier & de stylo. Il y a donc ce tableau codé en dur de deux nombres entiers dont la longueur est égale pour éviter toute divergence. Je vérifie si somme & portent des correspondances de valeur alors la sortie devrait être faite ainsi & ainsi autrement & donc. Vérifiez le code ci-dessous.Addition binaire en utilisant Java
Ma question est pourquoi est-ce que j'obtiens une erreur en cours d'exécution quant à Array Index Out of Bounds -1
, même après une compilation réussie.
public class binary{
static int sum, carry;
static int output = 0;
public static void main(String args[])
{
int[] a = {1,1,0,1,1,0,0,1,0,0,1};
int[] b = {1,0,0,0,0,0,0,0,1,0,1};
for(int i = 10; i >= 0; i--)
{
if(a[i] == 0 && b[i] == 0)
{
sum = 0;
carry = 0;
}
if(a[i] == 0 && b[i] == 1)
{
sum = 1;
carry = 0;
}
if(a[i] == 1 && b[i] == 0)
{
sum = 1;
carry = 0;
}
if(a[i] == 1 && b[i] == 1)
{
sum = 0;
carry = 1;
}
if(carry == 1)
{
carry += a[i-1] + b[i-1];
output = carry;
}
else
{
output += a[i] + b[i];
output = sum;
}
System.out.print(output);
}
}
}
'i-1' quand i vaut 0 dans' carry + = a [i-1] + b [i-1]; ' – GurV
Dans votre' if (carry == 1) 'vous avez' i-1 '. Quand 'i = 0' ce sera l'indice' -1' -> hors limites – Aidin
Comment vois-tu les deux codes similaires. C'est une boucle ordonnée. Et j'utilise la boucle inverse. –