如何将整数转换为字符串,反之亦然?

时间:2015-01-06 19:17:59

标签: types type-conversion

用于在数据类型之间进行转换的函数通常内置于编程语言中。有时它们是在库或包含文件中实现的。我可以想象通过使用大量条件语句将整数转换为字符,但我确信这不是它实际完成的方式。使用什么编程来提供这些转换?

2 个答案:

答案 0 :(得分:0)

在这里你进入python

x = 12345
chrs = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
s = ''
while x > 0:
  r = x % 10
  s = chrs[r] + s
  x = x / 10

(非常低效,但我能做得很清楚) (想法是在除以10之后得到余数并附加到字符串) (您应该在大多数编程语言中通过joining数组构建字符串)

答案 1 :(得分:0)

可以使用ASCII表进行一些转换:

ASCII表包含可打印字符,包括数字。好的是,0到9之间的每个数字都是连续的,因此,获得数字的char值相当容易。

enter image description here

当你查看ASCII表时,你会看到' 0'的字符值。如果n在0和9之间,则n的char值为48 + n

假设您的号码是45,并且您想将其转换为字符串。

我们取最后一个数字,即5.我们创建一个字符串,然后将字符串的值设置为48 + 5 = 53,即' 5'的ASCII代码。现在,为每个数字重复此过程,您将获得字符串

要将字符串转换回整数,您可以采用其他方式执行相同的过程:

以相同的例子,我们有" 45"。我们看看' 4',ASCII代码52,52-48 = 4.我们将这个东西存储成一个整数,并继续循环遍历字符串,在evey迭代之前乘以10。

我已经说明了这个例子here,它有点脏,但我希望它是明确的。代码如下:

string number = "";
number = (char)53 + number;
number = (char)52 + number;
cout << "Expected : a string equals to 45" << endl;
cout << number << endl;


int numberInt = ('4'-48)*10+'5'-48;
cout << "Expected : an integer equals to 45" << endl;
cout << numberInt<<endl;