Le code ci-dessous donne la sortie -1
.Négation des bits
#include <iostream>
using namespace std;
int main()
{
int x=0;
cout<<~x;
return 0;
}
Mais quand je fais les modifications suivantes les changements de réponse à 4294967295
. veux juste savoir pourquoi que dans le cas d'int il ne donne pas -2147483647
qui est 111 fois .... 32
#include <iostream>
using namespace std;
int main() {
unsigned int x=0;
cout<<~x;
return 0;
}
Peut-être vous avez besoin d'en savoir plus sur (https://en.wikipedia.org/wiki/Two's_complement) [complément à deux] ? –
Qu'avez-vous prévu? Un 'unsigned' ne peut pas contenir de nombres négatifs, donc 'all bits 1' sera un grand nombre, alors qu'avec un' signed' il ne le sera pas (indice: bit de signe, complément de deux). Quelle est votre question spécifique? –
je veux juste savoir que pourquoi dans le cas de int il ne donne pas -2147483647 qui est 111 .... 32 fois –