Javascript Node.JS中的memset和sprintf等效项
我正在尝试将此代码移植到node.JSJavascript Node.JS中的memset和sprintf等效项,javascript,c,node.js,Javascript,C,Node.js,我正在尝试将此代码移植到node.JS void init(int a, int b, int internalRounds) { memset(nkey, 0x00, 256); sprintf((char*)nkey, "%.5d_XXXXX%.5d_MASIN_%.5d", (a+10), (b+10), (a+b)); setup(nkey, 256); ucPrev = getRandom(); } 我想知道如何正确地做到这一点 我目前有: var C
void init(int a, int b, int internalRounds)
{
memset(nkey, 0x00, 256);
sprintf((char*)nkey, "%.5d_XXXXX%.5d_MASIN_%.5d", (a+10), (b+10), (a+b));
setup(nkey, 256);
ucPrev = getRandom();
}
我想知道如何正确地做到这一点
我目前有:
var Crypt = function(a, b, internalRounds) {
var nkey = new Buffer(256)
nkey.fill(0x00)
nkey = util.format('%.5d_XXXXX%.5d_MASIN_%.5d', (a+10), (b+10), (a+b))
this.setup(nkey, 256)
this.ucPrev = this.getRandom()
}
我想了解我是否正确执行了此操作。
util.format
不支持精度(即%.5f
)。此外,分配给nkey
只是用util.format
返回的字符串替换缓冲区。您想将字符串写入缓冲区
以下是解决这些问题的方法:
var key = new Buffer(256);
key.fill(0);
key.write(
(a + 10).toFixed(5) +
'_XXXXX' +
(b + 10).toFixed(5) +
'_MASIN_' +
(a + b).toFixed(5)
);