C++ C/C+中的自然数是否有基本类型+;?
我有一个问题,我需要将一些变量声明为自然数。哪一种是我应该用于自然数变量的基本类型?与整数类似的是int…如果需要不能为负数的数字,最好的选择是C++ C/C+中的自然数是否有基本类型+;?,c++,c,variables,int,variable-declaration,C++,C,Variables,Int,Variable Declaration,我有一个问题,我需要将一些变量声明为自然数。哪一种是我应该用于自然数变量的基本类型?与整数类似的是int…如果需要不能为负数的数字,最好的选择是无符号int。如果您想了解有关数据类型的更多信息,可以检查以下类型类似于C++中包含的0的自然数集: 无符号字符 unsigned short int unsigned int unsigned long int 无符号长整型,自C++11以来 每一台计算机所能代表的数值范围各不相同。请注意,计算机(甚至整个宇宙)是一台有限的机器;它有一个有限的(但
无符号int
。如果您想了解有关数据类型的更多信息,可以检查以下类型类似于C++中包含的0的自然数集:
无符号字符
unsigned short int
unsigned int
unsigned long int
,自C++11以来无符号长整型
int
不是数学整数。在我的机器上,int
是一个32位有符号整数(而long
是一个64位有符号整数),因此int
-s只有232个可能的值(这远远小于数学整数的无限基数)
所以一台计算机只能代表一组有限的数字,但却相当大。这比无限的自然数集合要小(记住,有些自然数无法在整个地球上表示;请阅读)
您可能希望使用无符号
(与无符号整数
相同,在我的机器上最多表示232-1的自然数),无符号长
,无符号长
或(来自
)类型,如uint32\t
,uint64\t
。。。您将得到32或64位的无符号二进制数。一些编译器和实现可能知道uint128\t
或类似的内容
如果不够,请考虑使用。你可以使用像这样的库(但即使是一台大计算机也不能用所有的位来表示非常大的自然数,你自己的大脑也不能理解它们)。
一个无符号整数怎么样?高达21.47亿的所有自然数…@LukePark这是32位有符号int
的范围(正负值)<代码>无符号将上限加倍,而下限为0
。啊,是的。将最后一个值翻一番对不起,您实际要解决的问题是什么?在你的问题中提到它(因此你应该编辑你的问题)将有助于获得更相关的答案。也许这就是我想要的,但我已经看过很多关于unsigned
vsunsigned int
的讨论,我有一些疑问。@Skyp89什么“疑问”unsigned
和unsigned int
声明相同的内容。int
是可选的/隐含的。(另外,signed
、signed int
和bareint
都是等价的。)就我个人而言,在语义上,我使用signed
和unsigned
,只要我特别关心标识,如果它不相关(只有在调用其他人的函数时才会发生).无符号字符
声明存储自然数的变量?为什么char
?char
不声明字符吗?