Присвоение -1 переменной t
типа size_t
и проверка ее на равенство -1 и 4294967295 ( FFFFFFFF , комплимент 2 -1 ; моя система 64 бит ; значение может отличаться в зависимости от системы), тогда в обоих случаях возвращается 1 , т.е. правда .
Код
int main(){
unsigned int t = 10;
cout<<"t = -1: "<<(t==-1); //checks if t is -1
cout<<"\nt = 4294967295: "<<(t==4294967295); //checks if t is 4294967295
cout<<"\nt: "<<t; //printing actual value of t
int p = t; //typecasting it to int
cout<<"\np: "<<p; //printing value of p
}
Фактический вывод -
t = -1: 1
t = 4294967295: 1
t: 4294967295
p: -1
возвращает 1
для обеих проверок (t==-1)
и (t==4294697295)
, но выводит t = 4294697295
и выводит p = -1
.
Если переменная t содержит два значения, то есть -1 и 4294697295 .
Что, безусловно, не так.
Требуется помощь.
Что на самом деле происходит внутри системы ??