我有一個字節數組(char1),我必須通過將它們轉換爲特定的數據類型。例如需要在陣列中的前兩個字節被轉換成ASCII字符,所以我只投他們使用將2字節轉換爲IDL中的一個16位整數
c = string(char1[0])
但對於CHAR1 [2]和CHAR1 [3]我需要一個16位無符號整數,所以如何我會去結合這兩個字節並將它們轉換爲uint?我正在尋找一個普通的答案,因爲我需要將其轉換爲從1個字節到8個字節的類型。
感謝
我有一個字節數組(char1),我必須通過將它們轉換爲特定的數據類型。例如需要在陣列中的前兩個字節被轉換成ASCII字符,所以我只投他們使用將2字節轉換爲IDL中的一個16位整數
c = string(char1[0])
但對於CHAR1 [2]和CHAR1 [3]我需要一個16位無符號整數,所以如何我會去結合這兩個字節並將它們轉換爲uint?我正在尋找一個普通的答案,因爲我需要將其轉換爲從1個字節到8個字節的類型。
感謝
uint
是使用程序。嘗試:
IDL> b = bindgen(2) + 1B
IDL> print, b
1 2
IDL> ui = uint(b[0:1], 0)
IDL> print, ui
513
IDL> print, 2^9 + 2^0
513
原因i = uint(char1[2] + ishft (char1[5], 8))
不工作是可變的移位是字節溢出時移8相反轉換做換班前爲uint:
i = uint(char1[2]) + ishft(uint(char1[3]),8)
我做多一些搜索和找到類似的問題,他們說,使用位移的答案,所以我只是嘗試'我= uint(char1 [2] + ishft(char1 [5],8))'但它不工作,我也試過翻轉char1 [2]和char1 [3] – user1026561