Javascript Node.JS中的memset和sprintf等效项

Javascript 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

我正在尝试将此代码移植到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 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)
);