智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2463|回复: 11
打印 上一主题 下一主题

[分享] 字符‘0’与数字0

[复制链接]

28

主题

166

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1649
威望
810
贡献
379
兑换币
404
注册时间
2012-10-11
在线时间
230 小时
毕业学校
山东理工大学
跳转到指定楼层
1#
发表于 2013-1-27 17:21:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这可是我纠结了一晚上和一下午得到的教训,特和各位车友分享。
我是想写编码器速度在5110的显示函数,可我只有一个5110的字符串显示函数,理所当然,我就把编码器的速度数组后面添加了'\0’,如图1,可最后5110就是不显示任何数值。费了好长时间,改了程序的各个部分都失败了,最后才发觉时问题出在了C语言基本的分辨上,我是用'\0'来判断字符串是否循环完毕的,可数值0对应的ASCII码表正是\0,因此一到字符串写循环就跳出了。修改方法就是在每个数组元素上都加上0x30.不知道各位车友以前有没有遇到类似糟心的事情,拿来分享一下,毕竟前事不忘后事之师嘛,给我们也提个醒。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

38

主题

1651

帖子

0

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
8770
威望
4444
贡献
2638
兑换币
1818
注册时间
2010-12-29
在线时间
844 小时
2#
发表于 2013-1-27 17:36:18 | 只看该作者
经典bug。
这也正是C语言太低级的一个体现。
回复 支持 反对

使用道具 举报

1

主题

2067

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5124

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
2752
贡献
898
兑换币
59
注册时间
2012-12-8
在线时间
737 小时
3#
发表于 2013-1-27 17:53:37 | 只看该作者
这都被楼主发现了
回复 支持 反对

使用道具 举报

28

主题

166

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1649
威望
810
贡献
379
兑换币
404
注册时间
2012-10-11
在线时间
230 小时
毕业学校
山东理工大学
4#
 楼主| 发表于 2013-1-27 17:58:06 | 只看该作者
exiao 发表于 2013-1-27 17:53
这都被楼主发现了

大神有什么经验拿来和大家分享一下呗
回复 支持 反对

使用道具 举报

28

主题

166

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1649
威望
810
贡献
379
兑换币
404
注册时间
2012-10-11
在线时间
230 小时
毕业学校
山东理工大学
5#
 楼主| 发表于 2013-1-27 18:00:15 | 只看该作者
yukunlinykl 发表于 2013-1-27 17:36
经典bug。
这也正是C语言太低级的一个体现。

以前写程序时就没注意char与int的区别,潜意识的就是大数用int,小数用char
回复 支持 反对

使用道具 举报

38

主题

1651

帖子

0

精华

功勋会员

Rank: 10Rank: 10Rank: 10

积分
8770
威望
4444
贡献
2638
兑换币
1818
注册时间
2010-12-29
在线时间
844 小时
6#
发表于 2013-1-27 18:06:00 | 只看该作者
sunzhaoxing2012 发表于 2013-1-27 18:00
以前写程序时就没注意char与int的区别,潜意识的就是大数用int,小数用char

int 的存在本身是为了效率而考虑的。
他的存在简直是兼容性杀手。
回复 支持 反对

使用道具 举报

51

主题

1633

帖子

0

精华

版主

Rank: 9Rank: 9Rank: 9

积分
7556

活跃会员奖章优秀会员奖章在线王奖章论坛元老奖章论坛骨干奖章

威望
3701
贡献
2453
兑换币
1398
注册时间
2012-5-3
在线时间
701 小时
7#
发表于 2013-1-27 19:11:36 | 只看该作者
一样。。所以我不得不把数据转成ASCII的形式,浪费额外时间
回复 支持 反对

使用道具 举报

17

主题

466

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13941
QQ
威望
10902
贡献
2497
兑换币
716
注册时间
2011-9-24
在线时间
271 小时
8#
发表于 2013-1-27 19:46:32 | 只看该作者
每次编程都为此烦恼,很郁闷啊
回复 支持 反对

使用道具 举报

25

主题

1217

帖子

0

精华

知名人物

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

积分
27518

论坛元老奖章活跃会员奖章优秀会员奖章在线王奖章资源大师奖章

QQ
威望
18721
贡献
5855
兑换币
3255
注册时间
2012-6-6
在线时间
1471 小时
9#
发表于 2013-1-27 19:51:20 | 只看该作者
好麻烦这个东东....
回复 支持 反对

使用道具 举报

28

主题

166

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1649
威望
810
贡献
379
兑换币
404
注册时间
2012-10-11
在线时间
230 小时
毕业学校
山东理工大学
10#
 楼主| 发表于 2013-1-27 20:46:45 | 只看该作者
glacier0 发表于 2013-1-27 19:11
一样。。所以我不得不把数据转成ASCII的形式,浪费额外时间

大神是怎么转换的,如果只是数字0到9的话,我的方法是全部加上0x30,如图一
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-22 07:30 , Processed in 0.128398 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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