我有一个字节数组(char1),我必须将它们转换为特定的数据类型。例如,数组中的前两个字节需要转换为 ascii 字符,所以我只是使用
c = string(char1[0])
但是对于 char1[2] 和 char1[3] 我需要一个 16 位无符号整数,那么我将如何组合这两个字节并将它们转换为 uint?我正在寻找一个一般性的答案,因为我需要转换为从 1 字节到 8 字节的类型。
谢谢
我有一个字节数组(char1),我必须将它们转换为特定的数据类型。例如,数组中的前两个字节需要转换为 ascii 字符,所以我只是使用
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)