%8 怎么可能 return8 呢?

How can % 8 actually return 8?

我有这个自定义填充的功能,它的工作原理是这样的:

    var length = 8 - ( (this.buffer.length - 1 + this.buffer.length - 39) % 8);
    var padding = Buffer.alloc(length + 1);
    for (i = 1; i <= length; i++) {
        padding.writeUInt8(i, i-1);
    }
    padding.writeUInt8(length, length);
    this.buffer = Buffer.concat([this.buffer, padding]);

其中 this.buffer 可能具有可变长度。 (总是 > 0) 但是,怎么会有长度为8的数呢? 因为我做的是 8 - x % 8,所以我期望值在 0 到 7 之间,或者不是?

x %8 从 0 到 7。

8 - x%88-0 == 88-7 == 1