首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >getint()函数乘以10?

getint()函数乘以10?
EN

Stack Overflow用户
提问于 2012-10-12 01:01:07
回答 3查看 177关注 0票数 2

我有一个关于getint程序的问题。

当我们得到这个部分的时候:

代码语言:javascript
运行
复制
for(*pn = 0; isdigit(c); c = getch())
    *pn = 10 * *pn + (c - '0');

首先,它将c转换为它的实数值,然后将pn中的数据乘以10。为什么它要将10与pn中的数据相乘

致以敬意,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-12 01:03:00

它从左边开始,当它移动到右边时,它遇到的每一个连续的数字都会乘以10。

以字符串"234“为例:

  1. 在第一次迭代时,取2。将0 (*pn)乘以10,加2,得到2。
  2. ,在第二次迭代时,取3。将2 (*pn)乘以10,加3,得到23。
  3. ,在第三次迭代中,取4。将23 (*pn)乘以10,加4,得到234。<代码>H29<代码>G210
票数 1
EN

Stack Overflow用户

发布于 2012-10-12 01:05:45

10中,小数记法中的任何数字都可以表示为多项式

代码语言:javascript
运行
复制
234 = 2*10^2 + 3*10 + 4

从左边读取并乘以10确保每个数字最终都是10的正确幂的倍数。这只是Horners法则的一个应用,真的。

票数 2
EN

Stack Overflow用户

发布于 2012-10-12 01:04:26

该函数从左开始,一次读取一个数字。因此,如果它读取的是12,那么它首先获取c == '1'*pn == 0,然后将1添加到*pn,现在*pn1。对于每个连续的数字,它将现有值乘以10 (*pn现在是10),然后将数字相加(*pn现在是12)。这样,它一次读取一个数字,并以正确的整数结束。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12844778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档