2

我有一个字节数组(char1),我必须将它们转换为特定的数据类型。例如,数组中的前两个字节需要转换为 ascii 字符,所以我只是使用

    c = string(char1[0])

但是对于 char1[2] 和 char1[3] 我需要一个 16 位无符号整数,那么我将如何组合这两个字节并将它们转换为 uint?我正在寻找一个一般性的答案,因为我需要转换为从 1 字节到 8 字节的类型。

谢谢

4

2 回答 2

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
于 2012-12-14T17:12:04.857 回答
1

i = uint(char1[2] + ishft (char1[5], 8))不起作用的原因是被移位的变量是字节,当移位 8 时它会溢出。而是在进行移位之前转换为 uint:

i = uint(char1[2]) + ishft(uint(char1[3]),8)
于 2013-01-16T21:40:02.107 回答