2016-03-31 11 views
1

Ich habe eine große Zahl als hexadezimale Zeichenfolge dargestellt. Ich muss es in einen Puffer umwandeln und davon Gebrauch machen. Dann muss ich die Nummer (jetzt ein Puffer) um 1 fortlaufend erhöhen und mehr davon nutzen.Wie inkrementiert man einen Puffer?

Gibt es eine Möglichkeit, einfach 1 zu einem Puffer hinzuzufügen? Wenn nicht, wäre es sinnvoll, einen neuen Puffer manuell zu erstellen, indem Sie die Zahlen von rechts nach links inkrementieren? Ist es sinnvoller, eine Bibliothek eines Drittanbieters zu verwenden, um die ursprüngliche hexadezimale Zeichenfolge hinzuzufügen und sie dann jedes Mal neu zu konvertieren?

Danke!

Antwort

1

Mit diesen Funktionen können Sie den Puffer erhöhen. Sie müssen nur wählen, ob Sie große oder kleine Endian wollen.

/** 
* @summary increment a buffer in little endian 
* @param buffer {Buffer} input buffer, will be modified 
* @description 
* Since 255 + 1 = 0 (mod 256), a "carry" is needed, if the 
* element is 255 before incrementing 
*/ 
function incrementLE (buffer) { 
    for (var i = 0; i < buffer.length; i++) { 
     if (buffer[i]++ !== 255) break; 
    } 
} 

/** 
* @summary increment a buffer in big endian 
*/ 
function incrementBE (buffer) { 
    for (var i = buffer.length - 1; i >= 0; i--) { 
     if (buffer[i]++ !== 255) break; 
    } 
}