我有一个字节数组(char1),我必须将它们转换为特定的数据类型。例如,数组中的前两个字节需要转换为ascii字符,因此我只使用
进行转换 c = string(char1[0])
但是对于char1 [2]和char1 [3]我需要一个16位无符号整数,那么如何组合这两个字节并将它们作为uint转换呢?我正在寻找一般答案,因为我需要转换为1字节到8字节的类型。
由于
答案 0 :(得分:2)
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
答案 1 :(得分:1)
i = uint(char1[2] + ishft (char1[5], 8))
不起作用的原因是被移位的变量是字节,当移位8时它会溢出。而是在进行移位之前转换为uint:
i = uint(char1[2]) + ishft(uint(char1[3]),8)