网站大量收购闲置独家精品文档,联系QQ:2885784924

DSP数据类型 -大小端.pdf

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP数据类型 -大小端

这两天开始真正 DSP 编程,遇到个很头痛的问题,也是很基础的问题。归根到底,还是自 己对数据类型没有弄清楚。 今天整理下: 存储顺序 大尾端和小尾端 1.定义 大尾端:高位在低地址。 小尾端:尾位在低地址。 2.字节层次。 如整数0内存中应该如下存放: 地低: base | base+1 | base+2 | base+3 | ------------------------------------------------ | 大端 | 12 | 34 | 56 | 78 | ----------------------------------------------- | 小端 | 78 | 56 | 34 | 12 | ps:一般 PC 是小端存储的。 DSP 中,要根据芯片得到。 3.字节内位序 。 在字节内依然是: 大端:高位放在低地址。 小端:低位放在低地址。 即大端与小端位序完全是镜像的。下面的程序可证明。 int _tmain(int argc, _TCHAR* argv[]) { struct BitData { unsigned Bit0_3:4; unsigned Bit4_7:4; unsigned Bit8_11:4; unsigned Bit12_15:4; }; union SData { unsigned short Data; struct BitData BData; } ssData; ssData.Data=0x1234;//此时 BData 与 Data 完全共享同一空间。 printf(%x\t%x\t%x\t%x\n,ssData.BData.Bit0_3,ssData.BData.Bit4_7,ssData.BData.Bit8_ 11,ssData.BData.Bit12_15); return 0; } 在运行程序前请先推理一下会输出什么,然后运行一下看看结果。 上述程序在普通 PC 上(小尾端)结果应该是: 4 3 2 1 内置数据类型 char 8 -2^7 ~ 2^7-1 %c %c、%d、%u signed -- char 8 -2^7 ~ 2^7-1 %c %c、%d、%u unsigned -- char 8 0 ~ 2^8-1 %c %c、%d、%u [signed] short [int] 16 -2^15 ~ 2^15-1 %hd unsigned short [int] 16 0 ~ 2^16-1 %hu、%ho、%hx [signed] -- int 32 -2^31 ~ 2^31-1 %d unsigned -- [int] 32 0 ~ 2^32-1 %u、%o、%x [signed] long [int] 32 -2^31 ~ 2^31-1 %ld unsigned long [int] 32 0 ~ 2^32-1 %lu、%lo、%lx [signed] long long [int] 64 -2^63 ~ 2^63-1 %I64d unsigned long long [int] 64 0 ~ 2^64-1 %I64u、%I64o、%I64x -- -- float 32 +/- 3.40282e+038 %f、%e、%g -- -- double 64 +/- 1.79769e+308 %lf、%le、%lg %f、%e、 %g -- long double 96 +/- 1.79769e+308 %Lf、%Le、%Lg 几点说明: 1. 注意! 表中的每一行,代表一种基本类型

文档评论(0)

ranfand + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档