您的位置:
OpenADSP社区论坛
->
Blackfin专区
->
新手上路
-> 【已解决】[求助]visual dsp++中数据扩展问...
本帖共有
432
个阅读者
【已解决】[求助]visual dsp++中数据扩展问题
rxxcsz
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
50
金钱:
546
积分:
70
注册时间:
2012/4/26
小
大
楼主
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
【已解决】[求助]visual dsp++中数据扩展问题
unsigned char a=0xa0;
unsigned short b;
b=(unsigned short)a;
为什么b得到的值是0xffa0呢?这个难道不是无符号的扩展,应该补0的吗?
诡异的是我新建一个工程只编译这一段程序,得到的又是正确值b=0x00a0;抬奇怪了,难道是我工程设置的原因?还有个区别是上面的情况是在ucos系统下
「该帖子被 rxxcsz 在 2014-04-04 10:01:51 编辑过」
这家伙很懒,什么也没有留下!
等级:
2014/4/4 9:04:31
编辑帖子
帖子评价
单帖屏蔽
删除帖子
andy
(论坛版主)
头衔:
社区公民
帮派:
无帮无派
帖数:
2287
金钱:
11132
积分:
2263
注册时间:
2011/6/8
小
大
第
1
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
你打开memory窗口,看一下你定义a的内存地址前,是不是带有ff。
这家伙很懒,什么也没有留下!
等级:
2014/4/4 10:09:53
编辑帖子
帖子评价
单帖屏蔽
删除帖子
rxxcsz
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
50
金钱:
546
积分:
70
注册时间:
2012/4/26
小
大
第
2
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
的确有,这应该如何处理呢?
不好意思,我又仔细看了下,是没有的;有错的情况前面是0x00;没错的情况前面是0x20
「该帖子被 rxxcsz 在 2014-04-04 10:26:08 编辑过」
这家伙很懒,什么也没有留下!
等级:
2014/4/4 10:16:32
编辑帖子
帖子评价
单帖屏蔽
删除帖子
andy
(论坛版主)
头衔:
社区公民
帮派:
无帮无派
帖数:
2287
金钱:
11132
积分:
2263
注册时间:
2011/6/8
小
大
第
3
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
你加个掩码吧。
b=(unsigned short)a &0xff;
这家伙很懒,什么也没有留下!
等级:
2014/4/4 10:25:04
编辑帖子
帖子评价
单帖屏蔽
删除帖子
rxxcsz
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
50
金钱:
546
积分:
70
注册时间:
2012/4/26
小
大
第
4
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
按你的方法还是不行,得到的依然是0xffa0
这家伙很懒,什么也没有留下!
等级:
2014/4/4 10:29:10
编辑帖子
帖子评价
单帖屏蔽
删除帖子
andy
(论坛版主)
头衔:
社区公民
帮派:
无帮无派
帖数:
2287
金钱:
11132
积分:
2263
注册时间:
2011/6/8
小
大
第
5
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
那你对b操作,先降值赋给b,然后用0xff过滤b的数据。
这家伙很懒,什么也没有留下!
等级:
2014/4/4 10:37:22
编辑帖子
帖子评价
单帖屏蔽
删除帖子
rxxcsz
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
50
金钱:
546
积分:
70
注册时间:
2012/4/26
小
大
第
6
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
依然不行,完全没有变化,这段程序在其他工程中都没有问题,加到ucos工程中就变成这样了,难道是UCOS的原因?
这家伙很懒,什么也没有留下!
等级:
2014/4/4 10:50:16
编辑帖子
帖子评价
单帖屏蔽
删除帖子
rxxcsz
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
50
金钱:
546
积分:
70
注册时间:
2012/4/26
小
大
第
7
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
我把这段程序复制到另一个UCOS工程中,却没有问题。。。。
这家伙很懒,什么也没有留下!
等级:
2014/4/4 10:56:31
编辑帖子
帖子评价
单帖屏蔽
删除帖子
rxxcsz
(论坛新手)
头衔:
社区公民
帮派:
无帮无派
帖数:
50
金钱:
546
积分:
70
注册时间:
2012/4/26
小
大
第
8
楼
信息
|
留言
|
Email
|
主页
|
编辑
|
管理
|
解决了。
unsigned short MakeWord(unsigned char a,unsigned char b)
{
unsigned short value=0;
value=(unsigned short)a<<8;
value=value+(unsigned short)b;
return value;
}
这是原始程序,引入的参数是数组中的两个变量,但数组被定义成了有符号的;所以就造成了这个结果。
这家伙很懒,什么也没有留下!
等级:
2014/4/4 11:09:19
编辑帖子
帖子评价
单帖屏蔽
删除帖子
Powered by
OpenADSP
Copyright © 2010
www.
Openadsp
.com
. All rights reserved.159200 Call, 1 Queries, Processed in 0.015991 second(s),