【发布时间】:2016-05-16 11:41:15
【问题描述】:
由于文字 0xffffffff 需要 32 位,它可以表示为 unsigned int 但不能表示为signed int,并且是 unsigned int 类型。但是无符号整数的负数会怎样呢?
#include <iostream>
#include <limits>
int main()
{
int N[] = {0,0,0};
if ( std::numeric_limits<long int>::digits==63 and
std::numeric_limits<int>::digits==31 and
std::numeric_limits<unsigned int>::digits==32 )
{
for (long int i = -0xffffffff; i ; --i)
{
N[i] = 1;
}
}
else
{
N[1]=1;
}
std::cout << N[0] <<N [1] << N[2];
}
输出:010
【问题讨论】:
标签: c++