从编程:使用C ++的原理和实践的第72-73页开始:
我们看到我们无法直接添加字符或将double与int进行比较。但是,C ++提供了一种间接的方法来做到这两点。需要时,char转换为int,int转换为double。例如:
char c = 'x'; int i1 = c; int i2 = 'x';
这里i1和i2都得到值120,它是最受欢迎的8位字符集ASCII中字符“x”的整数值。这是一种获取字符数字表示的简单而安全的方法。我们称这种char-to-int转换是安全的,因为没有信息丢失;也就是说,我们可以将结果int复制回char并获取原始值:
char c2 = i1; cout << c << ' << i1 << ' << c2 << '\n';
这将打印 x 120 x
我不了解char-to-int转换。我不明白作者所说的内容。你能帮我吗?
答案 0 :(得分:1)
作者说,您可以安全地从char转换为int,原因有两个。第一个是char是由ASCII值表示的单个字符。
以下是此类表http://www.asciitable.com/
的链接如示例所示,转换&#39; x&#39;到int将导致120,这是小写x的十进制ASCII值。
这是安全的第二个原因,因为没有变量更改或覆盖其数据,因为您要为每次转换创建新变量。
总而言之,char是一种数据类型,它将整数ASCII值表示为与给定表对应的字符,这就是为什么您可以轻松地从char转换为int的原因,因为它们是&#re;基本上都是整数。
答案 1 :(得分:0)
我的5美分
实际上,第一个想到 char to int conversion 的人是Ada Lovelace
(https://en.wikipedia.org/wiki/Ada_Lovelace)。
当她讨论Analytical Engine
(https://en.wikipedia.org/wiki/Analytical_Engine)时,她认为numbers
可以表达letters
和symbols
,并以这种方式Analytical Engine
理论上可以处理text
信息。
她甚至做了一些与文本一起使用的“程序”示例。