OpenEdv-开源电子网

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

如何把一个数组转换为int型,并输出十六进制(字节流)

[复制链接]

9

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-21
在线时间
21 小时
发表于 2014-9-23 08:15:21 | 显示全部楼层 |阅读模式
5金钱
一个数组char t[]="25168370"或一个int t=25168370,如何转换成它的十六进制(字节流,即在串口助手16进制模式下显示)01 80 09 f2?

最佳答案

查看完整内容[请看2#楼]

这个当练习题,自己搞定吧。 C语言基础学习的时候,就应该 把这些搞得滚瓜烂熟才是。
学海无涯苦作舟!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-23 08:15:22 | 显示全部楼层
这个当练习题,自己搞定吧。
C语言基础学习的时候,就应该 把这些搞得滚瓜烂熟才是。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-9-23 12:40:41 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,那我没有练到滚瓜烂熟怎么办
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-24 00:18:54 | 显示全部楼层
回复【3楼】Badu_Space:
---------------------------------
再 练练。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-9-24 07:56:17 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
好,接着继续练习,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

9

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-21
在线时间
21 小时
 楼主| 发表于 2014-9-25 16:31:31 | 显示全部楼层
谁能给个方向,都几天了 没有一定啊进展。
学海无涯苦作舟!
回复

使用道具 举报

9

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-21
在线时间
21 小时
 楼主| 发表于 2014-9-26 14:37:52 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,小弟弄了几天没有什么思路啊,能提示一下吗?
我现在智能把char t[]="25169370" 转换成char m=“0181C12B”和long n=25169370;
而我想得到的是实际传输字节流{0x01,0x81,0xc1,0x2b},跪求解决方法呀!!给点提示也行。
学海无涯苦作舟!
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-9-26 14:49:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

9

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-21
在线时间
21 小时
 楼主| 发表于 2014-9-26 14:59:00 | 显示全部楼层
回复【8楼】xouou_53320:
---------------------------------
能给点具体的思路吗?推荐个转换函数也行
学海无涯苦作舟!
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-26 22:52:08 | 显示全部楼层
回复【7楼】jiayansushi:
---------------------------------
”25169370“字符串,是如何转换成你的:0x01,0x81,0xc1,0x2b的?
我表示看不明白。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-9-27 10:05:49 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

9

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-21
在线时间
21 小时
 楼主| 发表于 2014-9-28 18:09:31 | 显示全部楼层
回复【11楼】xouou_53320:
---------------------------------
你好!我目的是把char t[]="25169370"转换成其整形的十六进制数组char m={0x01,0x81,0xC1,0x2B}。做法是先把char t[]="25169370"转换成了ulong n=25169370,使用printf("%c",n)后,在串口助手16进制格式下看到只有末尾的:2B,而不是我期望的01 81 C1 2B,测试printf("%s",n)没有任何输出,不知道怎么回事,能帮下小弟吗?谢谢!困扰好长时间了。
学海无涯苦作舟!
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-9-29 08:19:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

9

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-21
在线时间
21 小时
 楼主| 发表于 2014-9-29 09:44:01 | 显示全部楼层
回复【13楼】xouou_53320:
---------------------------------
你好,首先感谢您的回复。
问题还是没能解决,以上方法我也试过。
itoa(a,str,10);实际上是把a 整数转换成了char a[]="25169370",这就是把问题又绕回原点了,而我也是从char a[]="25169370"出发的。
使用itoa(a,str,16);测试把a转换成了 char a[]="181ca2b";而我想得到的是char m={0x01,0x81,0xC1,0x2B},在ascii码下显示是乱码的,这跟平常逻辑不同,我最近在搞808协议,GPS定位信息上报就是用这么变态的帧格式上传的,如果我认识的正确的话。
有什么更好的方法吗?
学海无涯苦作舟!
回复

使用道具 举报

9

主题

38

帖子

0

精华

初级会员

Rank: 2

积分
188
金钱
188
注册时间
2014-8-21
在线时间
21 小时
 楼主| 发表于 2014-9-29 14:55:40 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
字符串char t="25169370",实际上是我从GPS定位模块收到的asc码纬度数组,要按照《JTT 808-2011 道路运输车辆卫星定位系统终端通讯协议及数据格式》打包位置信息数据,通过参考已有的样机,传输到平台的数据是01 81 c1 2b(字节流),而在asc码格式下是乱码。而181c12b正是整形 ulong t=25169370的十六进制格式,也即是得到了char m=“181c12b”,接下来不知道怎么得到0x01 0x81 0xc1 0x2b 这样实际传输的字节了,原子哥帮忙看下好吗?
学海无涯苦作舟!
回复

使用道具 举报

头像被屏蔽

6168

主题

7036

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
19705
金钱
19705
注册时间
2012-12-27
在线时间
25 小时
发表于 2014-9-29 20:34:18 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-23 04:21

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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