скорректировал сам файл test.c:
#include <stdio.h>
#include <stdint.h>
int main(void) {
uint32_t a;
uint64_t b,c,d;
a=1149952;
printf("a=%ld\n",a);
b=(a*4)/1024;
c=(a*4096)>>20;
d=(a*4096)/(1024*1024);
printf("b=%lld c=%lld d=%lld\n",b,c,d);
return 0;
}
$ gcc test.c -o test
$ ./test
a=1149952
b=4492 c=396 d=396