在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ long型數(shù)據(jù)怎么轉(zhuǎn)成 ArrayBuffer 64位二進(jìn)制數(shù)據(jù)?

long型數(shù)據(jù)怎么轉(zhuǎn)成 ArrayBuffer 64位二進(jìn)制數(shù)據(jù)?

前后端用websocket通信,前端怎么將long型數(shù)據(jù)轉(zhuǎn)為 ArrayBuffer 64位二進(jìn)制數(shù)據(jù)

回答
編輯回答
淺淺

剛剛開(kāi)始想用位運(yùn)算,一直算到64位的,但是發(fā)現(xiàn)js的位運(yùn)算只能到達(dá)31位...然后再高就是又一個(gè)循環(huán)..
于是就想到將十進(jìn)制轉(zhuǎn)換十六進(jìn)制,然后取高位再運(yùn)算一次

    function long2bin(p) {
        var r = new ArrayBuffer(8);
        r[7] = p & 0xff;
        r[6] = p >> 8 & 0xff;
        r[5] = p >> 16 & 0xff;
        r[4] = p >> 24 & 0xff;
        p = p.toString(16); //轉(zhuǎn)換成16進(jìn)制,取出高位
        if (p.length <= 8) {
            return r;
        }
        p = parseInt(p.substr(0, p.length - 8),16);//取出高位,并轉(zhuǎn)換成int
        r[3] = p & 0xff;
        r[2] = p >> 8 & 0xff;
        r[1] = p >> 16 & 0xff;
        r[0] = p >> 24 & 0xff;
        return r;
    }
    var l = 1234567891011;
    long2bin(l);
2017年5月15日 17:45
編輯回答
眼雜
var num = 12
var ab = new ArrayBuffer(1)
ab[0] = num
2017年12月4日 05:40