Visualizzazione risultati 1 fino 8 di 8

Discussione: Somma tra due numeri binari

  1. #1
    Guest

    Predefinito Somma tra due numeri binari

    Ciao a tutti, sapete darmi un consiglio dovrei fare un metodo che dati due input binari deve fare la somma.
    Se esiste un eventuale riporto dovrei salvarlo in una variabile.
    La lunghezza dei campi input è di 4 caratteri.

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,970

    Predefinito

    Prova così:
    Codice:
    var overflow = 0;
    function somma(a,b)
    {
        var somma = parseInt(a,2) + parseInt(b,2);
       if(somma & 16)
           overflow = 1;
      //return somma & 0xF;      //in decimale
        return (somma & 0xF).toString(2);  //in binario
    }
    Se non funziona o non capisci qualcosa, chiedi pure.

    Ciao!
    Ultima modifica di alemoppo : 02-07-2014 alle ore 22.24.29

  3. #3
    Guest

    Predefinito

    Ti ringrazio, un'ultima cosa se devo fare uno shift a destra ">>" ho questo numero di 4 bit, se inizia per zero il numero diventera a 3 bit.
    Come posso forzarlo per farlo iniziare per zero, pensavo di farlo considerare come stringa.

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,970

    Predefinito

    Se vuoi tenere solo i primi 3 bit:
    Codice:
    numero &= 7;
    Ciao!

  5. #5
    Guest

    Predefinito

    Se vuoi tenere solo i primi 3 bit? Non ho capito xD

  6. #6
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,970

    Predefinito

    Ah scusami, vuoi fare uno shift destro.
    Non puoi usare lo shift?
    Codice:
    numero >>= 1;
    Ciao!

  7. #7
    Guest

    Predefinito

    Il problema che il numero è binario faccendo shift destro, lo considera come numero naturale.

  8. #8
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,970

    Predefinito

    Ah ok, beh, lo puoi trasformare in decimale come detto sopra con la parseInt() sfruttando il secondo parametro, poi shiftare e ritrasformare.

    Ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •