该函数传输的是双精度浮点数。
function writebyte(id, data)
{
data = Math.floor(data);
buf[id] = String.fromCharCode(data & (255));
}
对于0-127的值,它可以正常工作。但是对于负数或大于127的值,它会出现错误。
128 = 0xC2 0x80 (should be 0x80 1 byte)
-1 = 0xC3 0xBF (should be 0xFF 1 byte)
我认为问题出在使用
String.fromCharCode
函数时,参数是128++或负数。是否有直接将字节写入数组而不使用 String.fromCharCode
的方法?