Should be mysignificand2. + words[1] = ((uint64_t)(sign & 1) << 63) | + ((myexponent & 0x7fff) << 48) | + (mysignificand & 0xffffffffffffLL); Other than that the format appears to match my Sparc book, but I have no way to test, do you?