C++ 可以包含给定有符号整数的正值的最小无符号整数?

C++ 可以包含给定有符号整数的正值的最小无符号整数?,c++,templates,c++11,integral,C++,Templates,C++11,Integral,是否可以在编译时确定包含给定有符号整数类型的正值的最小无符号int 因此,最小的无符号整数类型足够大,可以容纳给定有符号整数类型的最大值。一个好的起点是2是基数,我们需要考虑基于2的对数。一般规则: 如果无符号整数具有sizeofn个字节,则最大正数为(2^(8*n))-1 如果有符号整数具有sizeofn个字节,则最大正数为(2^(8*n-1))-1 因此,您需要确定给定类型的变量的大小,并查看它是否有符号 这就是你要找的吗?这取决于“最小”的含义,因为某些整数类型可以具有相同的大小。例如,考

是否可以在编译时确定包含给定有符号整数类型的正值的最小无符号int


因此,最小的无符号整数类型足够大,可以容纳给定有符号整数类型的最大值。

一个好的起点是2是基数,我们需要考虑基于2的对数。一般规则:

  • 如果无符号整数具有
    sizeof
    n个字节,则最大正数为(2^(8*n))-1

  • 如果有符号整数具有
    sizeof
    n个字节,则最大正数为(2^(8*n-1))-1


  • 因此,您需要确定给定类型的变量的大小,并查看它是否有符号

    这就是你要找的吗?这取决于“最小”的含义,因为某些整数类型可以具有相同的大小。例如,考虑一个系统,其中代码> int 和具有相同大小和范围的值。您对
    long
    unsigned int
    unsigned long
    问题的答案是正确的还是正确的?每个有符号类型都有相应的无符号类型;该类型被定义为能够存储所有有符号类型的非负值,因此这些都不是必需的。我相信了解实际的力学和公式既有趣又有用。我会重新讨论你的数学。