社区
C语言
帖子详情
一个很菜的问题,但是我觉得不好理解.帮忙理解一下
newpyh
2003-06-22 05:55:50
main()
{ char *p,s[6];int n;
p=s;
gets(p);
n=0;
while(*(p)!='\0')
{n=n*8+*p-'0'; /*这一句应该怎么理解呀,能否用比较好理解的方式给我解说,用数学方式解说也可以谢谢*/
p++;}
printf("%d",n);
}
这是一个8进制转10进制的代码,
...全文
33
11
打赏
收藏
一个很菜的问题,但是我觉得不好理解.帮忙理解一下
main() { char *p,s[6];int n; p=s; gets(p); n=0; while(*(p)!='\0') {n=n*8+*p-'0'; /*这一句应该怎么理解呀,能否用比较好理解的方式给我解说,用数学方式解说也可以谢谢*/ p++;} printf("%d",n); } 这是一个8进制转10进制的代码,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hero249
2003-06-23
打赏
举报
回复
应该是这样最好理解:X(10)=A7A6A5....A0(8)
=A7*8^7+A6*8^6+...A0
=((((((A7*8+A6)*8+A5)*8+...A1)*8+A0
chinazcw
2003-06-23
打赏
举报
回复
要说转换的原理嘛,就是根据在ASCII码中,字符之间的位置差来进行转换的。
如'0'的ASCII码为30H,'1'的ASCII码为31H,以此类推.....
说说你的例子吧,当你输入的是字符数字'8'的话。
‘8’-‘0’就相当于38H-30H,结果当然是等于8啦,不过现在的8已经变成数值型数据了
chinapp
2003-06-23
打赏
举报
回复
对不起,少打一个括号应该是((1x8+2)x8+3)x8+4=668
chinapp
2003-06-23
打赏
举报
回复
如果你要数学理解的话,简单!
比如说1234是一个八进位数,如何转换成10进位数呢?
就是(1x8+2)x8+3)x8+4=668
懂了吗?
xdspower
2003-06-23
打赏
举报
回复
X(10)=A7A6A5....A0(8)
=A7*8^7+A6*8^6+...A0
=((((((A7*8+A6)*8+A5)*8+...A1)*8+A0
newpyh
2003-06-23
打赏
举报
回复
谢谢各位的回答,但是我的实际问题是不知道为什么 n=n*8+*p-'0'这个式子能起到转换的作用
to lzh7800(海) : 你的是错的,应该是
第一次 *p ='7', n=0*8+'7'-'0'=7;
第二次 *p ='4', n=7*8+'4'-'0'=60;
八进制的74转化为十进制为7*8^1+4*8^0 ( 8^1 表示8的次方), 为什么用n=n*8+*p-'0'这个式子就能计算出结果呢
不理解的是纯数学问题,就不理解为什么别人把n=n*8+*p-'0'当做转换的公式,别人是怎样想到的,总该有个推论吧.
Beover1984
2003-06-22
打赏
举报
回复
p指向的ASCII码值减支'0'的值
晨星
2003-06-22
打赏
举报
回复
“*p-'0'”能把数字字符转换成整数,如*p == '4',则“*p-'0'”就是整数4。
w123wwei
2003-06-22
打赏
举报
回复
up
lzh7800
2003-06-22
打赏
举报
回复
举个例子:
*p表示一个数字字符,输入为74
第一次 *p='4', n=0*8+'4'-'0'=4;
第二次 *p='7', n=4*8+'7'-'0'=41;
lbaby
2003-06-22
打赏
举报
回复
*p是当前正在处理的字符
*p - '0' 就得到这个字符的实际值 如:*p='7',则*p - '0' =7
n=n*8+*p-'0'就是转换,然后累加
od脱壳软件破解工具
但愿大家互相进修进修,大家对于破解都不是很了解,人们想学破解,可是去无从入手,所以决议为大家写1个破解初级读物的教程,但愿能大家了解破解有一些
帮忙
,但愿能有更多的人踏入破解的大门 1.低级,修改步伐,用...
如何
理解
ssh 三大框架
作者:meepo链接:...要
理解
SSH三大框架,那么最好是用SSH三大框架做
一个
项目啦这是
一个
模仿天猫的练手项目1. 项目演示地址前台: http://how2j.cn/tmall后台: http://how2j....
计算机网络简单
理解
总结
这篇文章我看了书 也网上搜索了一些网站看看大概的不懂的地方。本文大概
理解
了大部分内容部分内容的
理解
大家可以根据自己的东西加以
理解
,有不正确的...2.电路交换(电话)在很久很久以前,你记不记着,有个“拨号连...
简单
理解
几种Java IO模型
很多朋友在学习NIO的时候感觉比较吃力,对里面一些概念不是很明朗,本文杜撰了
一个
大嘴开饭店的故事,来类比Java IO模型的演变,帮助
理解
几种模型的功能和特点,IO分为磁盘IO和网络IO,本文讨论的都是网络IO。...
一个
人做饭有哪些推荐?
Chen Sam ,
一个
空号。 355 人赞同 -- 2015.12.28.
一个
圣诞节长周末多了100个赞..What's going on here..感恩。 有同学私信说需要详细步骤的做饭教程,但是这里篇幅太局限了..如果开
一个
微信公众号什么...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章