Прошу помощи в понимании строки кода

maxi_10
Offline
Зарегистрирован: 05.01.2012

Прошу помочь понять что делает вторая строка кода:

    // this is NTP time (seconds since Jan 1 1900):
    unsigned long secsSince1900 = highWord << 16 | lowWord;  
    Serial.print("Seconds since Jan 1 1900 = " );
    Serial.println(secsSince1900);               

Заранее спасибо.

P.S.

этот кусок кода взят из стандарного примера: "Udp NTP Client"

tsostik
Offline
Зарегистрирован: 28.02.2013

Объявляет переменную secsSince1900 типа unsignel long (беззнаковое целое длиной 32 ,бита), старшие 16 бит которого представляют из себя биты числа highWordб а младшие 16 бит   - биты  из числе lowWord

leshak
Offline
Зарегистрирован: 29.09.2011

Читаем << и Arduino - BitwiseAnd

В двух словах: из двух двух-байтовых переменных highWord  и lowWord собирает одну четерхбайтовую secsSince1900

деалет тоже самое что и Arduino - WordCast с двумя параметрами. Только он собирает word из двух байтов, а ваша строчка собирает long из двух word-дов.

maxi_10
Offline
Зарегистрирован: 05.01.2012

Спасибо Всем!!!