数字与字符串的转换

11个月前 阅读 400 评论 0 赞 1

作为一个程序员应该要了解字符串与数字相互转换时都发生了一些什么.
为了简化问题,假设我们需要对无符号整型与字符串相互转换.
从字符串转型为整型数字的过程如下:
1.将存储的最终结果清零.
2.如果串中没有数字了,则算法结束,该变量存储的就是对应的数.
3.从串中取出一个数字(从左到右).
4.将变量乘以10,然后加上步骤3中取到的数字.
5.回到步骤2,继续.

例如,我们需要转换字符串”1234”为无符号整型1234
计算机需要做以下工作:

  1. n=0
  2. 判断串中还有数字,继续
  3. str取出1
  4. n = 10 * 0 + 1 = 1
  5. 判断串中还有数字,继续
  6. str取出2
  7. n = 10 * 1 + 2 = 12
  8. 判断串中还有数字,继续
  9. str取出3
  10. n = 10 * 12 + 3 = 123
  11. 判断串中还有数字,继续
  12. str取出4
  13. n = 10 * 123 + 4 = 1234
  14. 串中没有数字得到最终值整型数字 1234

而将整型数字转为字符串还要复杂一点”
1.将字符串转换为空串.
2.如果整型数为0,则输出0.
3.将当前的整型数除以10,得到余数和商.
4.将余数转换为一个字符,把该字符接到字符串尾部.
5.如果商不为0,使用它作为新的整型数,重复3-5步.

处理有符号整型与浮点数要更复杂一些.
综上,简单的转换语句其实是做了大量的工作的.
所以我们在处理数字/字符串之间的转换时需要非常小心,并且在必要的时候才使用.

你的支持将鼓励作者继续创作

评论(0)

(无)