C ++中的无符号关键字
在C ++中,unsigned关键字是否默认为特定的数据types? 我正在为原型编写一个类的函数:
unsigned Rotate(unsigned object, int count)
但是我真的不知道什么是unsigned
意思。 不应该像unsigned int
或东西?
从上面的链接 :
这些types中的几个可以使用关键字signed,unsigned,short和long进行修改。 当这些types修饰符之一本身被使用时,假定int的数据types
这意味着你可以假设作者正在使用整数。
整数types:
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:
char (is signed or unsigned depending on the implmentation) signed char unsigned char
unsigned关键字是否默认为C ++中的数据types
是的,有符号和无符号也可以用作独立types说明符
整型数据typeschar,short,long和int可以是有符号的或无符号的,这取决于需要表示的数字的范围。 签名types可以表示正值和负值,而无符号types只能表示正值(和零)。
包含n位的无符号整数可以具有0到2 n – 1之间的值(这是2 n个不同的值)。
但是,signed和unsigned也可以用作独立types说明符,分别与signed int和unsigned int相同。 以下两个声明是等价的:
unsigned NextYear; unsigned int NextYear;
您可以阅读关于在C ++参考中无符号的关键字。
在这个问题上有两种不同的types,签署和未签署。 整数的默认值是有符号的,这意味着它们可以有负值。
在32位系统上,整数是32位,这意味着它可以包含大约40亿的值。
而当它签署的时候,这就意味着你需要分割它,留下 – 20亿到20亿。
当它是无符号的,但值不能包含任何负数,因此对于整数这将意味着0至40亿。
维基百科上有更多的信息。
是的,这意味着unsigned int
。 它曾经是,如果你没有在C中指定一个数据types,有很多地方只是假设int
。 这是尝试,例如,函数返回types。
这个疣几乎已经根除,但你在这里遇到最后的遗迹。 恕我直言,代码应该固定说unsigned int
以避免只是你遇到的混乱。