OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9912|回复: 6

字符串指针强制转化为16位的整型指针的问题

[复制链接]

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2012-7-31
在线时间
3 小时
发表于 2014-4-14 10:32:08 | 显示全部楼层 |阅读模式
unsigned char font[]="气体";
u16 *sp=(u16*)font;

font里面的数据是0xc6,0xf8,0xcc,0xe5;
但是在强制转化为16位int 型指针扣变成了0xf8c6,0xe5cc,这种情况是不是大端和小端存储的情况,先行多谢指点一二了,
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2012-7-31
在线时间
3 小时
 楼主| 发表于 2014-4-14 10:34:02 | 显示全部楼层
补充说明下,编译通过没有问题,是使用keil4.12版的,是大端或小端存储的问题????
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2012-7-31
在线时间
3 小时
 楼主| 发表于 2014-4-14 10:44:57 | 显示全部楼层
我希望是的结果是0xc6f8,和0xcce5
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2014-4-14 11:12:07 | 显示全部楼层
就是大小端问题。
你要这种格式,只能自己写一个函数,人为的调转一下顺序。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

93

帖子

0

精华

初级会员

Rank: 2

积分
194
金钱
194
注册时间
2014-3-12
在线时间
9 小时
发表于 2014-4-14 20:33:03 | 显示全部楼层
typedef unsigned short u16;
#define SM(DATA) ((u16)( ((DATA & 0X00FF)<<8) | ((DATA>>8) & 0XFF) ))

unsigned char cod[] = {0x12,0x34,0x56,0x78};
unsigned short* pt = (unsigned short*)cod;
printf("%x\r\n",SM(*pt++));
功夫再高、也怕羊刀
回复 支持 反对

使用道具 举报

3

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
55
金钱
55
注册时间
2012-7-31
在线时间
3 小时
 楼主| 发表于 2014-4-19 17:00:43 | 显示全部楼层
多谢各位的指点,特别是"加速度",我采用的是你的方法,再次感谢
回复 支持 反对

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2021-6-18 16:16:00 | 显示全部楼层
就是大小端的问题啊。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-22 21:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表