【发布时间】:2018-03-03 11:59:59
【问题描述】:
我希望在不使用任何其他函数(例如 strtonum())的情况下重现 atoi() 函数的行为。我真的不明白如何将 char 或 char * 转换为 int 而不将其转换为 ASCII 值。我在 C 中做这个,有什么建议吗?
【问题讨论】:
-
如果您的系统使用ASCII,那么
char元素中的字符已经是 ASCII。对于数字,实际编码并不重要,因为 C 规范说所有数字 必须 是连续的,无论编码如何。根据该信息,并查看链接的 ASCII 表,您应该希望能够弄清楚如何获取例如1来自'1'。 -
对十进制数系统有基本的了解也很好。
-
@Someprogrammerdude 不需要,因为所需的答案是转换整数值而不是浮点数或双精度值。
-
@AmazingThingsAroundYou 通过“十进制编号系统”我不是指浮点值,我是指数字如何基于
10以及如何将单个数字乘以(和除)10.
标签: c char int data-conversion atoi