【发布时间】:2016-03-29 07:05:24
【问题描述】:
从编程:使用 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 到 int 的转换是安全的,因为不会丢失任何信息;也就是说,我们可以将生成的 int 复制回 char 并获取原始值:
char c2 = i1; cout << c << ' << i1 << ' << c2 << '\n';这将打印 x 120 x
我不明白 char 到 int 的转换。我不明白作者说的那些东西。你能帮帮我吗?
【问题讨论】:
-
A
char实际上只不过是一个小范围的整数(0 到 255 或 -128 到 127,取决于char是否无符号),而 C++ 有很多 @ 987654321@,例如integral promotions。 -
@Superex 什么,具体点你不明白吗?
-
a
char是一个byte的表示,它是四位,给出 0000 - 1111 之间的二进制值,0-2555 无符号,或 -128 到 127 有符号,如 Joachim 所述.在编程中 charr 将是文本表示,因此如果您将值分配给int,您将获得 char 的 int 值。 -
@JoSSte 请检查范围 0-255
-
@JoSSte 你的意思是 7 或 8 位
标签: c++