用于在数据类型之间进行转换的函数通常内置于编程语言中。有时它们是在库或包含文件中实现的。我可以想象通过使用大量条件语句将整数转换为字符,但我确信这不是它实际完成的方式。使用什么编程来提供这些转换?
答案 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值相当容易。
当你查看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;