- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
#include <stdio.h>
#include <inttypes.h>
int main(void) {
uint64_t a = 1<<31;
uint64_t b = 1<<32;
uint64_t c = (uint64_t)1<<32;
printf("a:%llx\n", a);
printf("b:%llx\n", b);
printf("c:%llx\n", c);
return 0;
}
Верное слово.
б) Сдвиг 32-битного числа на 32 -- UB. Иногда получается 0, иногда число вообще никуда не двигается.
ц) Ну тут всё норм.