Python &引用;“拆包”;在C中
我正在将一个脚本从python重写为C。我对C比较陌生 我在PYTHON中有一个变量,其中包含以下值:Python &引用;“拆包”;在C中,python,c,unpack,iterable-unpacking,Python,C,Unpack,Iterable Unpacking,我正在将一个脚本从python重写为C。我对C比较陌生 我在PYTHON中有一个变量,其中包含以下值: x = [chr(113),chr(80),chr(191),chr(70)] y = "".join(x) 这将返回y值: y = qP¿F #this is string 现在我要做的是解包这个变量,将它存储到变量z中,以得到我想要的结果。像这样: z = struct.unpack("<f",y) print z[0] #unpack returns a
x = [chr(113),chr(80),chr(191),chr(70)]
y = "".join(x)
这将返回y值:
y = qP¿F #this is string
现在我要做的是解包这个变量,将它存储到变量z中,以得到我想要的结果。像这样:
z = struct.unpack("<f",y)
print z[0] #unpack returns a tuple of size 1
这对我来说是正确的
我想知道在C中是否有相同的函数可供我使用?不需要这样的函数;如果endianness已经正确,编译器可以通过指针转换或通过
union
类型处理这种情况
uint8_t data[4] = {113, 80, 191, 70};
printf("%f\n", (double)(*(float*)data));
不需要这样的功能;如果endianness已经正确,编译器可以通过指针转换或通过
union
类型处理这种情况
uint8_t data[4] = {113, 80, 191, 70};
printf("%f\n", (double)(*(float*)data));
您只是将字节强制转换为浮点。您只是将字节强制转换为浮点。事实上,如果在C中不是那么容易,那么其他语言就不需要提供库来模拟它。事实上,如果在C中不是那么容易,那么其他语言就不需要提供库来模拟它。
$ ./a.out
24488.220703