加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl在C中解包“S *”等价物

发布时间:2020-12-16 06:19:19 所属栏目:大数据 来源:网络整理
导读:我正在理解Perl在我正在阅读的一些代码中解压缩,特别是使用S *模板. $data = "FF";print "$data - ",unpack("S*",$data),"n";# FF - 17990 C中的这个等价物是什么? 为什么? 非常感谢您的帮助 解决方法 你在C中的代码看起来(大致)像这样: const char *dat
我正在理解Perl在我正在阅读的一些代码中解压缩,特别是使用S *模板.

$data = "FF";
print "$data - ",unpack("S*",$data),"n";
# > FF - 17990

> C中的这个等价物是什么?
>为什么?

非常感谢您的帮助

解决方法

你在C中的代码看起来(大致)像这样:

const char *data = "FA";
unsigned short s;
memcpy( &s,data,strlen(data) );
printf("%s = %dn",s);

这仅处理具有两个字符的情况,而解包(‘S *’,…)将返回与其输入对应的短按列表.

为什么?打包和解包的主要动机之一是使二进制数据与C结构更容易交换.

perlpacktut是一个很好的起点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读