我在哪里可以找到所有C++十进制类型指标?
Where could I find all the C++ decimal type indicator?
我在哪里可以找到所有C++十进制类型指示符,例如
long l = 0L;
我也知道 L U f d。还有其他人吗?我在哪里可以找到它们?如何明确表示无符号短?
您引用的此指标称为后缀。
对于整数类型,有两种类型的后缀:
-
无符号后缀— 字符
u
或字符U
-
长后缀— 字符
l
或字符L
或长后缀— 字符序列ll
或字符序列LL
。
对于整数文本,可以组合这些后缀(如ul
或ull
),以在同一文本中同时实现"无符号"和"长度"。
浮点类型也有后缀:f
、F
、l
或L
- 没有后缀的文字定义
double
f
或F
定义float
l
或L
定义long double
还有用户定义的文本,您可以为其引入用户定义的后缀。
至于你关于unsigned short
的第二个问题:short
没有明确的后缀,所以你将不得不使用static_cast
或C样式的强制转换。
另一种方法是定义一个用户定义的文字运算符,如下所示
unsigned short operator "" _ush(unsigned long long int a)
{
return static_cast<unsigned short>(a);
}
然后使用它来定义文字,如下所示:unsigned short a = 123_ush;
我已经使用此代码片段检查了它是否有效:
#include <iostream>
#include <string>
#include <typeinfo>
unsigned short operator "" _ush(unsigned long long int a)
{
return static_cast<unsigned short>(a);
}
int main()
{
std::string name;
bool equal = typeid(decltype(123_ush)) == typeid(unsigned short); // check that literal is indeed unsigned short
std::cout << equal;
}
有关我的回答中提到的内容的更多信息,我建议查看cpp首选项:整数文字,浮点文字,用户定义的文字
你不能。C++中没有所谓的unsigned short
或short
字面
。您需要使用static_cast
.
参考: https://en.cppreference.com/w/cpp/language/integer_literal
简短的列表是:
1.0 => double
1.0f => float
1 => int
1U => unsigned int
1L => long
1UL => unsigned long
1ULL => unsigned long long
1LL => long long
以下是前缀和后缀的良好文档: https://www.geeksforgeeks.org/integer-literal-in-c-cpp-prefixes-suffixes/
您可以在 lex.literal 中找到内置文字词缀的完整列表。
我会引用完整的表格,但我们对此没有降价支持,所以这里有一个后缀列表:
来自 lex.icon/2 的整数后缀:
- (无后缀)
u
或U
l
或L
u
或U
和l
或L
ll
或LL
u
或U
和ll
或LL
这些表示的确切类型取决于文字值的大小,但如果您查看表 7,您会发现没有后缀可以为您提供开箱即用的unsigned short
。
为了完整起见,以下是 lex.fcon 中的浮点后缀:
f
、l
、F
、L
中的任何一个。
f
/F
表示float
,l
/L
表示long double
。没有后缀表示double
。
- visual在c++中将十进制数转换为二进制数
- C++十进制到二进制,如何转换
- 计算十进制 c++ 之后的数字
- C++从二进制转换为十进制数
- 有没有办法通过使用十进制 ASCII 代码自动类型扣除来获取字符?
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- Geeksforgeeks C 程序故障排除:IEE 754 表示法为十进制
- cin 的十进制输入验证?
- 我编写了代码将十进制分数转换为其二进制等效数.它编译得很好,但在执行时挂起
- 将分数转换为十进制数并对其进行排序
- uint8_t同一二进制文件的不同十进制值
- 如何打印大于"无符号长长"的"std::bitset"的十进制值?
- 调用方如何知道 VARIANT 中何时有十进制?
- 将字符串(可以是十进制字符串或十六进制字符串)转换为整数C++
- 十进制到二进制转换器 c++
- 使用标准库计算字符串中的十进制数
- 如何在C ++中将二进制字符串128位转换为十进制字符串?
- 如何计算整数的十进制数字?
- (第 1 位 + 第 2 位)以十进制数表示
- 在 C++ 中使用带有十六进制十进制和八进制数的 unsetf