Tem*_*lar 8 string algorithm integer
许多语言都具有将字符串转换为整数的功能,反之亦然.那么那里发生了什么?转换期间正在执行什么算法?
我没有用特定的语言问,因为我认为它们应该在所有语言中都相似.
Mar*_*som 14
要将字符串转换为整数,请依次取每个字符,如果它在"0"到"9"范围内,则将其转换为十进制等效值.通常,这只是减去'0'的字符值.现在将任何先前的结果乘以10并添加新值.重复,直到没有数字为止.如果有一个前导' - '减号,则反转结果.
要将整数转换为字符串,请先将数字反转为负数.将整数除以10并保存余数.通过添加字符值'0'将余数转换为字符.将其推到字符串的开头; 现在重复您从分部获得的值.重复,直到分割值为零.如果数字开始为负数,则输出一个前导' - '减号.
以下是Python中的具体实现,在我看来,它是最接近伪代码的语言.
def string_to_int(s):
i = 0
sign = 1
if s[0] == '-':
sign = -1
s = s[1:]
for c in s:
if not ('0' <= c <= '9'):
raise ValueError
i = 10 * i + ord(c) - ord('0')
return sign * i
def int_to_string(i):
s = ''
sign = ''
if i < 0:
sign = '-'
i = -i
while True:
remainder = i % 10
i = i / 10
s = chr(ord('0') + remainder) + s
if i == 0:
break
return sign + s
Run Code Online (Sandbox Code Playgroud)