The bit operations of 24 bits is not easy to understand, which has a mask like 0xFFF. Since this version is an unsigned long long int, I can enlarge it to 32 bits, 16 bits per each. And it may be enough to have a version number from 1 to 65535.