我不明白char-to-int转换

时间:2016-03-29 07:05:24

标签: c++

编程:使用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转换。我不明白作者所说的内容。你能帮我吗?

2 个答案:

答案 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 Lovelacehttps://en.wikipedia.org/wiki/Ada_Lovelace)。

当她讨论Analytical Enginehttps://en.wikipedia.org/wiki/Analytical_Engine)时,她认为numbers可以表达letterssymbols,并以这种方式Analytical Engine理论上可以处理text信息。

她甚至做了一些与文本一起使用的“程序”示例。