(4294967296=2^32)

I want to print `4294967296` using printf("%u, %d") and want to see what will happen but i get some strange result.

The code is as following:

```
printf("%d\n", 4294967296);

printf("d = %u = %d = 0x%x  \n", 4294967296, 4294967296, 4294967296);//this is strange

printf("d = %u = %d = 0x%x  \n", 4294967295 + 1, 4294967295 + 1, 4294967295 + 1);

```

and my result is 

```
0

d = 0 = 1 = 0x0

d = 0 = 0 = 0x0

```

[the picture of result](https://i.stack.imgur.com/XPKEA.png)

you can see the binary expression of 4294967296 is 0x0 in the second line, but when i print 4294967296 use "%d", it will show 1, which i am confused with. I expect the output of 1 to be 0.