unsigned 关键字是否默认为 C++ 中的特定数据类型?我正在尝试为原型的类编写一个函数:
unsigned Rotate(unsigned object, int count)
但我真的不明白是什么unsigned
意思。不应该是这样unsigned int
吗?
从上面的链接:
可以使用关键字signed、unsigned、short 和long 来修改其中的几种类型。当单独使用这些类型修饰符之一时,假定数据类型为 int
这意味着您可以假设作者使用的是整数。
整数类型:
short -> signed short
signed short
unsigned short
int -> signed int
signed int
unsigned int
signed -> signed int
unsigned -> unsigned int
long -> signed long
signed long
unsigned long
小心字符:
char (is signed or unsigned depending on the implmentation)
signed char
unsigned char
无符号关键字是否默认为 C++ 中的数据类型
是的,有符号和无符号也可以用作独立的类型说明符
整数数据类型 char、short、long 和 int 可以是有符号或无符号的,具体取决于需要表示的数字范围。有符号类型可以表示正值和负值,而无符号类型只能表示正值(和零)。
包含 n 位的无符号整数的值可以在 0 到 2 n - 1 之间(即 2 n 个不同的值)。
但是,signed 和 unsigned 也可以用作独立的类型说明符,分别与 signed int 和 unsigned int 含义相同。以下两个声明是等价的:
unsigned NextYear;
unsigned int NextYear;
您可以在 C++ Reference 中阅读有关关键字unsigned 的信息。
这件事有两种不同的类型,签名和未签名。整数的默认值是有符号的,这意味着它们可以有负值。
在 32 位系统上,整数是 32 位,这意味着它可以包含约 40 亿的值。
而当它签署时,这意味着你需要将它拆分,留下 -20 亿到 +20 亿。
但是,当它是无符号的时,该值不能包含任何负数,因此对于整数,这意味着 0 到 +40 亿。
在Wikipedia上有更多关于此的信息。
是的,意思是unsigned int
。过去,如果您没有在 C 中指定数据类型,那么在很多地方它只是假设int
。例如,这是对函数返回类型的尝试。
这种疣大部分已被根除,但您在这里遇到了它的最后痕迹。恕我直言,代码应该是固定的,unsigned int
以避免您遇到的那种混乱。