繁体   English   中英

如何增加缓冲区?

[英]How does one increment a buffer?

我有一个很大的数字表示为十六进制字符串。 我需要将它转换为缓冲区,并利用它。 然后,我需要将所述数字(现在是缓冲区)连续增加 1,并更多地利用它。

有没有办法简单地将 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;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM