有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

通过位操作将Java代码从Java转换为JavaScript代码

我正在为Java脚本重新编写一个Java代码,我进入了一个不一样的位操作, 以下是原始Java代码:

ByteArrayOutputStream bos = new ByteArrayOutputStream();
bos.reset();
short x = 451;
bos.write(x & 0xFF);
byte[] bytesArr = bos.toByteArray();

这给了我一个单元格大小的数组:[-61]

这是JavaScript代码:

var bos = [];
var x = 451;
bos.push(x & 0xFF);

这给了我一个单元大小的数组:[195]

除了451之外,我还有几个数字,而且转换对它们很好,我还缺少什么


共 (1) 个答案

  1. # 1 楼答案

    JavaScript没有固定大小的整数,只有一个数字类型,因此必须使用逐位运算符(自动将其视为32位整数)并对8位进行符号扩展

    &13; 第13部分,;
    var bos = [];
    var x = 451;
    bos.push(((451 & 0xFF) << 24) >> 24);
    
    console.log(bos);
    和#13;
    和#13;

    或者更好的方法是使用类型化数组(不过您需要先知道数组的大小)

    &13; 第13部分,;
    var bos = new Int8Array(1);
    bos[0] = 451;
    
    console.log(bos);
    和#13;
和#13;