byte tb[4]; for (int i = 3; i >= 0; i--) { if (value <= 0x7F) { tb[i] = value; fwrite(&tb[i], 1, 4 - i, f); break; } else { tb[i] = (value & 0x7F) | 0x80; value >>= 7; } }