打印

关于40位数据的移位问题

[复制链接]
1384|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
paraselene1|  楼主 | 2013-10-10 14:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我通过include "stdint.h" 定义了uint40_t类型的40位数据类型。但是这个数据在移位的时候就发生了错误,数据无法向左移动到最高的8位上面,设置第32都无法移动到,有高手知道原因么?或者有什么解决方案么?

相关帖子

沙发
airwill| | 2013-10-10 15:37 | 只看该作者
真是个令人郁闷的事情,看来编译器对这类非标准的数据类型处理并不完全支持

使用特权

评论回复
板凳
zhangmangui| | 2013-10-10 23:13 | 只看该作者
这个也不好说  与编译器有关系

使用特权

评论回复
地板
zhangmangui| | 2013-10-10 23:16 | 只看该作者
我在stdint.h   没有找到uint40_t类型

使用特权

评论回复
5
firstblood| | 2013-10-11 20:39 | 只看该作者
还是定义的数据类型的除了啥问题的吧:P

使用特权

评论回复
6
paraselene1|  楼主 | 2013-10-12 11:11 | 只看该作者
airwill 发表于 2013-10-10 15:37
真是个令人郁闷的事情,看来编译器对这类非标准的数据类型处理并不完全支持 ...

对啊,我发现只要大于32位的就不能向左移位了

使用特权

评论回复
7
paraselene1|  楼主 | 2013-10-12 11:14 | 只看该作者
zhangmangui 发表于 2013-10-10 23:16
我在stdint.h   没有找到uint40_t类型

有啊,我用的CCSv5的版本,我找到解决办法了,如果要移位的话用<<移位符的话移到32位以上就不行了,但是我如果直接用乘2的方法的话就可以了,所以我移几位直接乘几个2就可以了。。。纠结了好久,依然谢谢热心的版主么哈

使用特权

评论回复
8
paraselene1|  楼主 | 2013-10-12 11:16 | 只看该作者
firstblood 发表于 2013-10-11 20:39
还是定义的数据类型的除了啥问题的吧

DSP内部是32位的,如果用超了位数的数据类型的话,果然有可能会出现这样那样的问题

使用特权

评论回复
9
paraselene1|  楼主 | 2013-10-12 11:16 | 只看该作者
zhangmangui 发表于 2013-10-10 23:16
我在stdint.h   没有找到uint40_t类型

版主,问下怎么结贴啊。。。我好几个帖子都没有结贴。。。

使用特权

评论回复
10
airwill| | 2013-10-12 11:51 | 只看该作者
关于如何结贴的最详细教程
https://bbs.21ic.com/icview-442857-1-1.html

使用特权

评论回复
11
zhangmangui| | 2013-10-12 13:05 | 只看该作者
paraselene1 发表于 2013-10-12 11:16
版主,问下怎么结贴啊。。。我好几个帖子都没有结贴。。。

airwill给的链接讲解很详细  你看看  
如果还是不行   @zhangmangui

使用特权

评论回复
12
zhangmangui| | 2013-10-12 13:06 | 只看该作者
paraselene1 发表于 2013-10-12 11:14
有啊,我用的CCSv5的版本,我找到解决办法了,如果要移位的话用

我下来在仔细看看  谢谢

使用特权

评论回复
13
paraselene1|  楼主 | 2013-10-12 13:38 | 只看该作者
airwill 发表于 2013-10-12 11:51
关于如何结贴的最详细教程
https://bbs.21ic.com/icview-442857-1-1.html

看到啦

使用特权

评论回复
14
biechedan| | 2013-10-13 00:12 | 只看该作者
还是使用两位吧。

使用特权

评论回复
15
biechedan| | 2013-10-13 00:12 | 只看该作者
可以定义一个宏实现这些功能的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

14

主题

35

帖子

0

粉丝