Цитата(MKdemiurg @ Aug 22 2013, 14:09)

Компилятор CVAVR - long long там тоже не реализован. Но до этого момента и не нужно было.
Он и в этом моменте не нужен. Чтобы достать старшие байты double-числа, нет необходимости прибегать к типу long long. Более того, добычка этих байт через long long сопряжена с организацией огромных сдвигов (29 и 52 разрядов), что никак не назовешь эффективным программированием.
Было бы куда проще накладывать число double не на long long, а на unsigned char v[8] или unsigned short v[4], а затем сложить float из этих байт или слов. А еще симпатичнее вместо массива объявить структуру с битовыми полями под стать double-формату. Например:
Код
struct double_type {
uint32_t mantissa_lo : 29;
uint32_t mantissa_hi : 23;
unsigned int exponent : 11;
unsigned int sign : 1;
};
struct float_type {
uint32_t mantissa : 23;
unsigned int exponent : 8;
unsigned int sign : 1;
};