я не силён в оптимизациях компилятора, но истории про то как программа начинает жужать в 2 раза быстрее, после того как все константы перемножены на калькуляторе ходят повсюду, да и у самого такое было
я не силён в оптимизациях компилятора, но истории про то как программа начинает жужать в 2 раза быстрее, после того как все константы перемножены на калькуляторе ходят повсюду, да и у самого такое было
По всей видимости, пересчитываются компилятором. Но это число теперь типа duble и опять не влазит в память 🙂 Наверное я могу его привести во флоат, может поместится
Как конвертнуть 2 uint8_t в int16? uint16_t a = (8<<hByte) | lByte - постоянно возвращает только lByte
а тут, если байты у вас в правильном порядке стоят и выровнены - просто приводите масив к нужному типу (вы ж один чёрт в масив кладёте) и берите значение
По всей видимости, пересчитываются компилятором. Но это число теперь типа duble и опять не влазит в память 🙂 Наверное я могу его привести во флоат, может поместится
а тут, если байты у вас в правильном порядке стоят и выровнены - просто приводите масив к нужному типу (вы ж один чёрт в масив кладёте) и берите значение
Не. Я тут по сути 2 байта читаю в переменные. МОжно и в массив конечно. Это типа uint16_t a = (uint16_t)[0x02,0x01] ?
Не. Я тут по сути 2 байта читаю в переменные. МОжно и в массив конечно. Это типа uint16_t a = (uint16_t)[0x02,0x01] ?
если так то наверное проще сделать как писали выше. Я просто на днях подобное делал, только там посылки побольше были и ендиан система совпала и просто интерпретировал массив как 16 разрядное
Вообще, должны быть оба по 4 байта. Но в некоторых случаях он может быть 8 байт. Вот судя по тому, что оно теперь не влазит, это таки 8 байт. Но я сейчас попробую привести во флоят и убедиться
Вообще, должны быть оба по 4 байта. Но в некоторых случаях он может быть 8 байт. Вот судя по тому, что оно теперь не влазит, это таки 8 байт. Но я сейчас попробую привести во флоят и убедиться