2011-11-19 27 views
1

我需要一個JavaScript功能,其轉換 一個4字節的十六進制字符串BIN(使用部分AUF字節)至DECBitmanipulation

這些數據來自一個傳感器和測量值分佈在該字符串。

示例( 「ff027608」,BitOffset = 7,BitSize = 4)

11111111000000100111011000001000 - > 1000 - > 8(DEC)

----------- ^^^^

在膠印7起是4位值

function convert(bp,BitOffset,BitSize){ 
    bp >>= parseFloat(BitOffset); 
    bp <<= parseFloat(BitSize); 
    return bp; 
}; 

1)如何轉換十六進制爲長整型

2)如何切出4個字節的值ICHD

3)我如何將其轉換爲一個DEC

還是有更好的辦法

預先感謝您

+0

請接受其中一個答案。點擊最好的旁邊的大勾。 – robertc

回答

1

你從十六進制轉換做十二月搭配:

var dec = parseInt(hex, 16); 

,並從十二月與

01爲十六進制

,並從斌到十二月與

var dec = parseInt(bin, 2); 

,並從十二月到倉與

var bin = dec.toString(2); 
0

我想這是更簡單的方法:

function convert(input, offset, size){ 
    var result = input.substr(offset, size); 
    result = parseInt(result, 2); 

    return result; 
} 

您可以十六進制轉換爲使用parseInt(hex, 16),但我很擔心JS不支持多頭(AFAIK)。如果你需要很長時間,可能你必須把它分成兩個整數。