小编Raj*_*dhu的帖子

无符号 int 文字越界

如果我定义该unsigned int类型的变量并使用其范围之外的值对其进行初始化,那么它会使用模并为自己分配一个在其范围内的值,对吧?

例如:

unsigned int a = 4294967298;
std::cout << a << std::endl;
Run Code Online (Sandbox Code Playgroud)

将打印2.

但是,如果不是这样,我写:

std::cout << 4294967298u << std::endl
Run Code Online (Sandbox Code Playgroud)

它打印4294967298而不打印2

这是为什么?

我认为我们在这两个例子中做了几乎相同的事情。

是因为在第二个示例中,默认情况下文字不是int, butlong或其他东西,并且我们unsigned long通过添加u作为后缀将其转换为?那么,我们如何将它用作unsigned int文字呢?

c++ unsigned literals unsigned-integer

2
推荐指数
1
解决办法
121
查看次数

C++ 中文字类型的意义是什么?

我是 C++ 新手,我正在使用 C++ Primer 来学习。

long对我来说,变量具有像和long longfor这样的“子类型”是有意义的int,这样它们就可以容纳更大的值,即使它们是用不太大的值初始化的。

但我似乎无法理解为什么人们可能需要重写整数文字的默认类型,例如42使其long long代替默认类型int?这不像文字必须保存另一个值,因为它实际上是一个常量。

c++ literals

1
推荐指数
1
解决办法
142
查看次数

标签 统计

c++ ×2

literals ×2

unsigned ×1

unsigned-integer ×1