| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4579 人关注过本帖
标题:n=*p-'0'是什么意思?
只看楼主 加入收藏
sfl514318924
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2011-9-11
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
n=*p-'0'是什么意思?
哪位大侠能告诉我一下
int fun(char *p)
{
  int n;
  n=*p-'0';
  p++;
  while( *p!='\0')
  {
    n=n*8+*p-'0';
    p++;
  }
  return  n;
}
中n=*p-'0';是什么意思?谢谢
搜索更多相关主题的帖子: return 
2011-09-11 13:54
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:3 
你从程序上搞一小段,别人不好理解。
你这是8进制字符串转10进制的子程序,n=*p-'0',就是因为实际上字符5的ascii码是0x35而'0'对应0x30,因此减去后得到字符的实际偏移值。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-09-11 14:14
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:3 
从这函数看,*p的值是一个字符,一个数字字符,
那个赋值表达式的意思是把*p表示的数字的值赋值给n,
因为字符都是有ASCII码值的,减去‘0’的ascii码值
之后就是要得数字了

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-09-11 14:17
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:3 
就是求*p這個字符比'0'大多少,内碼計算。比如*p='6',就是'6'-'0',即6,表示'6'在'0'後第6位處。

授人以渔,不授人以鱼。
2011-09-11 14:17
sfl514318924
Rank: 1
等 级:新手上路
帖 子:11
专家分:2
注 册:2011-9-11
收藏
得分:0 
回复 4楼 TonyDeng
谢谢  现在懂了
2011-09-11 14:39
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 楼主 sfl514318924
n变量=*p指针所指的值(即八进制,数字字符)-'0'(数字字符'0',在ASCLL码中,十进制是49) 剩下的你应该懂了

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2011-09-11 14:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
樓主這是八進制轉換程序吧?設計說不上很好,這種思路,對十六進制無效,超過十的都無效。

授人以渔,不授人以鱼。
2011-09-11 14:49
快速回复:n=*p-'0'是什么意思?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025235 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved