- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 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, иногда число вообще никуда не двигается.
ц) Ну тут всё норм.
И ты туда же, сука.