JavaScript简单位转换器

JavaScript简单位转换器,javascript,node.js,bitconverter,Javascript,Node.js,Bitconverter,我需要为JavaScript制作简单的C#位转换器。我制作了简单的位转换器 class BitConverter{ constructor(){} GetBytes(int){ var b = new Buffer(8) b[0] = int; b[1] = int >> 8 b[2] = int >> 16 b[3] = int >> 24 return b } ToInt(buffer){ retur

我需要为JavaScript制作简单的C#位转换器。我制作了简单的位转换器

class BitConverter{
constructor(){}
GetBytes(int){
    var b = new Buffer(8)
    b[0] = int;
    b[1] = int >> 8
    b[2] = int >> 16
    b[3] = int >> 24
    return b
}
ToInt(buffer){
    return buffer[0] | buffer[1]<<8 | buffer[2] << 16 | buffer[3] << 24 
}
}
类位转换器{
构造函数(){}
GetBytes(int){
var b=新缓冲区(8)
b[0]=int;
b[1]=int>>8
b[2]=int>>16
b[3]=int>>24
返回b
}
ToInt(缓冲区){

return buffer[0]| buffer[1]Javascript将您的最终结果视为带符号的数字。您可以通过使用
>0
结束按位操作来解决此问题,这将强制符号位为0。因此,对于您的示例:

class BitConverter{
    GetBytes(int) {
        var b = new Buffer(8)
        b[0] = int;
        b[1] = int >> 8
        b[2] = int >> 16
        b[3] = int >> 24
        return b
    }
    ToInt(buffer) {
        return (buffer[0] | buffer[1]<<8 | buffer[2] << 16 | buffer[3] << 24) >>> 0;
    }
}

var converter = new BitConverter();
converter.ToInt(converter.GetBytes(2851281703)) // Returns 2851281703
类位转换器{
GetBytes(int){
var b=新缓冲区(8)
b[0]=int;
b[1]=int>>8
b[2]=int>>16
b[3]=int>>24
返回b
}
ToInt(缓冲区){

return(buffer[0]| buffer[1]Hmm。在node中尝试过这个方法,对我来说似乎效果很好。你能举一些例子说明你输入了多少和得到了多少吗?数据:GetBytes(2851281703)//ToInt(a)//-1443685593你让我很开心!我怎样才能更好地编写GetBytes?我必须这样做吗?
class BitConverter{
    GetBytes(int) {
        var b = new Buffer(8)
        b[0] = int;
        b[1] = int >> 8
        b[2] = int >> 16
        b[3] = int >> 24
        return b
    }
    ToInt(buffer) {
        return (buffer[0] | buffer[1]<<8 | buffer[2] << 16 | buffer[3] << 24) >>> 0;
    }
}

var converter = new BitConverter();
converter.ToInt(converter.GetBytes(2851281703)) // Returns 2851281703