Как правильно преобразовать 4 байта в одну беззнаковую длинную переменную?
Я программирую PIC18 на MPLAB C18, и это мой код.
unsigned long theseconds = 0x00;
BYTE timeToSave[4];
timeToSave[0] = 0xFF;
timeToSave[1] = 0xFF;
timeToSave[2] = 0x01;
timeToSave[3] = 0x01;
theseconds = timeToSave[0] & 0xFF;
theseconds |= (timeToSave[1] << 8) & 0xFFFF;
theseconds |= (timeToSave[2] << 16) & 0xFFFFFF;
theseconds |= (timeToSave[3] << 24) & 0xFFFFFFFF;
printf("\r\nSeconds:%lu",theseconds);
Вот результат, который я продолжаю получать: Секунды: 255.
Спасибо!
int
. Это работает, только еслиsizeof(int)==sizeof(long)
- person jeb   schedule 15.07.2013