C++中的Unsigned关键字

Cry*_*tal 81 c++ unsigned

unsigned关键字是否默认为C++中的特定数据类型?我正在尝试为原型的类编写函数:

unsigned Rotate(unsigned object, int count)
Run Code Online (Sandbox Code Playgroud)

但我真的没有unsigned办法.不应该是unsigned int什么样的东西?

fut*_*te7 90

从上面的链接:

可以使用signed,unsigned,short和long关键字修改其中几种类型.当其中一个类型修饰符本身使用时,假定数据类型为int

这意味着您可以假设作者正在使用整数.


Mar*_*ork 38

整数类型:

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
Run Code Online (Sandbox Code Playgroud)

小心char:

char  (is signed or unsigned depending on the implmentation)
signed char
unsigned char
Run Code Online (Sandbox Code Playgroud)

  • 使用'unsigned'(单独)来声明'unsigned int'类型是C++的标准.在当前标准中:7.1.5.2 [dcl.simple.type]有一个表,用于标识所使用的实际类型的每个类型声明.该表具有从"unsigned"声明到"unsigned int"类型的对应关系. (4认同)
  • 请注意,char对signed char或unsigned char具有相同的*behavior*,但无论如何都是单独的类型. (2认同)

Pra*_*rav 21

unsigned关键字是否默认为C++中的数据类型

是,signed和unsigned也可以用作独立类型说明符

整数数据类型char,short,long和int可以是有符号或无符号的,具体取决于需要表示的数字范围.有符号类型可以表示正值和负值,而无符号类型只能表示正值(和零).

包含n位的无符号整数可以具有0到2 n -1 之间的值(这是2 n个不同的值).

但是,signed和unsigned也可以用作独立类型说明符,分别与signed int和unsigned int相同.以下两个声明是等效的:

unsigned NextYear;
unsigned int NextYear;
Run Code Online (Sandbox Code Playgroud)

  • 那不是"是"吗?默认为int,如果没有类型使用? (3认同)

Fil*_*erg 8

您可以在C++参考中阅读关于unsigned的关键字.

在这个问题上有两种不同的类型,签名和非签名.整数的默认值是有符号的,这意味着它们可以具有负值.

在32位系统上,整数是32位,这意味着它可以包含~40亿的值.

当签名时,这意味着你需要拆分它,留下20亿到20亿.

当它是无符号时,该值不能包含任何负数,因此对于整数,这将意味着0到+40亿.

维基百科上有更多的信息.

  • 我喜欢自己为大多数事情做过烧焦.美味的碳和carmelization! (2认同)
  • 编辑拼写错误怎么样?...这就是“编辑”按钮的用途! (2认同)