2016-03-31 6 views
1

私は16進文字列として表現された大きな数を持っています。 私はそれをバッファに変換し、それを利用する必要があります。 次に、上記の数値(現在のバッファ)を1ずつインクリメントして、それをさらに利用する必要があります。バッファをどのようにインクリメントしますか?

単純に1をバッファに追加する方法はありますか? もしそうでなければ、数字を右から左にインクリメントして手動で新しいバッファを作成するのは意味がありますか?サードパーティライブラリを使用して元の16進文字列に追加し、毎回それを再変換しようとすると意味がありますか?

ありがとうございます!

答えて

1

これらの関数を使用すると、バッファを増やすことができます。ビッグエンディアンかリトルエンディアンかを選択する必要があります。

/** 
* @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; 
    } 
} 
関連する問題