在C ++中,unsigned关键字是否默认为特定数据类型?我正在尝试为原型的类编写一个函数:
unsigned Rotate(unsigned object, int count)
但是我真的不明白是什么unsigned
意思。不应该是这样unsigned int
吗?
Answers:
整数类型:
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
unsigned关键字默认为C ++中的数据类型吗
是的,有符号和无符号也可以用作独立类型说明符
整数数据类型char,short,long和int可以根据需要表示的数字范围进行签名或不签名。有符号类型可以代表正值和负值,而无符号类型只能代表正值(和零)。
包含n位的无符号整数可以具有0到2 n -1之间的值(这是2 n个不同的值)。
但是,signed和unsigned也可以用作独立类型说明符,分别与signed int和unsigned int相同。以下两个声明是等效的:
unsigned NextYear;
unsigned int NextYear;
short
和long
也是类型修饰符。如果你写的话short s
,那实际上意味着short int s
,就像unsigned u
真正意味着一样unsigned int u
。(和unsigned short
手段unsigned short int
)
您可以在《 C ++参考》中了解有关unsigned关键字的信息。
此问题有两种不同的类型,有符号的和无符号的。整数的默认值是带符号的,这意味着它们可以具有负值。
在32位系统上,整数是32位,这意味着它可以包含〜40亿的值。
当签署时,这意味着您需要将其拆分,剩下的-20亿到+20亿。
但是,当它为无符号时,该值不能包含任何负数,因此对于整数,这将意味着0到+40亿。
有关更多信息,请参阅Wikipedia。