Если я получаю сообщение через RS232, состоящее из 2 байтов, например. 0000 0001 0001 1100 (то есть 100011100, lsb справа), я хочу сохранить его в переменной, называемой значением.Сохранение сообщения rs232 переменной
Я "декодирование" поток байт с этим шагом:
rxByte = Serial1.read()
messageContent[0] = rxByte
messageContent[1] = rxByte
с первым rxByte, имеющим значение 0000 0001 и второй 0001 1100. Или те значения, которые уже были преобразованы внутрь в HEX или DEC?
Теперь я видел код, который сохраняет его таким образом к значению:
uint32_t value = messageContent[0] *256 + messageContent[0]
Как это работает?
«Вы строите свой номер как 45 * 1000 + 123 = 45123« Я понял, почему, но не так ... Итак, компьютер всегда знает, что «* 256» является десятичным?он также может быть шестнадцатеричным, а затем битдвиг не будет работать. К вашему первому пункту: конечно, rxbyte = Serial1.read() выполняется на каждой итерации, это просто для того, чтобы показать, как я это делаю. – user2366975
Правила компилятора C определяют, что написано (в вашем исходном коде C) как десятичное (255), hex (0xff) или восьмеричное (0377). –