2016-03-31 22 views
1

Onaltılık bir dize olarak temsil edilen büyük bir numaram var. Bir arabelleğe dönüştürmem ve kullanmam gerekiyor. Ardından, söz konusu numarayı (şimdi bir arabellek) sürekli olarak 1 artırmalı ve daha fazla kullanmalıyım.Bir tampon nasıl artırılır?

Yalnızca bir arabelleğe 1 eklemenin bir yolu var mı? Değilse, sayıları doğrudan sola doğru artırarak el ile yeni bir arabellek oluşturmak mantıklı olur mu? Orijinal onaltılık dizeye eklenecek bir üçüncü taraf kitaplığı kullanmayı denemek ve her seferinde yeniden dönüştürmek daha mantıklı mı?

Teşekkürler!

cevap

1

Bu işlevler arabelleği artırmanıza izin vermelidir. Büyük ya da küçük bir endian istersen seçmelisin.

/** 
* @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; 
    } 
} 
İlgili konular