【发布时间】:2021-02-05 02:49:04
【问题描述】:
是否可以获取字符的十进制值?我知道我可以使用 short(char) 但这会浪费内存,这就是我首先使用 char 的原因,我只想要 8 位数据,所以我使用 char(类似于 C# 中的 byte)。在我的程序中,当我需要打印它时,它总是显示一些与十进制值对应的奇怪字符,我希望它显示十进制值本身。那么是否有 C# 等效的 char.GetNumericValue()?
【问题讨论】:
-
您是在寻找字符的 ascii 值,还是希望将 '2' 之类的东西转换为 2?
-
如何打印出来?您可以选择将其打印为数字还是字符。
-
请出示minimal reproducible example,在您的问题陈述中添加更多详细信息,并向我们展示预期和实际输出。
-
您是说
cout << short(c);是在浪费内存,还是您想将其存储为数值? (它已经存储为一个数值。)另外,也许您正在寻找'1'而不是1?很难说。 -
像所有整数类型一样,
char包含一个数值。按照约定,当显示时,char的值被解释为要显示的字符。如果您想以不同的方式显示它(通常是这种情况),只需假装它不是char,即通过转换它:std::cout << short(value)。该演员表不会影响value使用的存储量;它只是说不做通常的解释,而是显示数值。是的,short(value)使用的内存比value多,但这只是在转换值以供显示时使用。
标签: c++ casting char type-conversion integer