sizeof(long long) = 8字节
sizeof(unsigned long long) = 8字节
计算字节数
unsigned long long memUsed = ...;
unsigned mb = (unsigned)(memUsed >> 20);
unsigned kb = (unsigned)(memUsed << (sizeof(unsigned long long)*8 - 20) >> (sizeof(unsigned long long)*8 - 10));
unsigned b = (unsigned)(memUsed && 1024);
printf("%uMB, %uKB, %uB\n", mb, kb, b);
原理:
2E10 = 1024;
末10位 B
次末10位 KB
其余高位 MB