Страница 1 из 1

Как правильно отнять пол байта?

Добавлено: 13 фев 2019, 13:58
ElectroMechaniC
ардуино по UART получает число:

Код: Выделить всё

Hex:  03 04 59 70
Как правильно объявить переменную от этого числа равную:

Код: Выделить всё

a = 03 04 59 7
Другими словами нужно откинуть последний "0"
Дело в том что мне нужно перевести его в десятичные...
А переводе на десятичные должно выйти

Код: Выделить всё

DEC: 3163543

А если просто присвоить переменной 4е байта получается

Код: Выделить всё

DEC: 50616688
В калькуляторе то всё просто, а вот в скетче играюсь со сдвигами байтов, но пока что не выходит "аленький цветочек"
Подскажите ЗНАТОКИ!

Как правильно отнять пол байта?

Добавлено: 13 фев 2019, 14:14
kulibinsvv
[ref]ElectroMechaniC[/ref], нужно сделать следующее:
1.Переводите число HEX: 03 04 59 70 в десятичный вид.
2. Полученное число делите на 16.
3. И весело идёте пить пиво.
:D

Как правильно отнять пол байта?

Добавлено: 13 фев 2019, 14:31
Sancho
[ref]ElectroMechaniC[/ref], Сдвиг вправо на 4 бит поможет :)
1 байт = 8 бит = два символа в Hex. Каждый символ = 4 бита.

Как правильно отнять пол байта?

Добавлено: 13 фев 2019, 14:32
ElectroMechaniC
[ref]kulibinsvv[/ref], да спасибо!
Получилось!
Блин! как это работает?

Как правильно отнять пол байта?

Добавлено: 13 фев 2019, 14:38
Sancho
Замени типы переменных в блоках на необходимые тебе

Отправлено спустя 1 минуту 1 секунду:
Каждый сдвиг вправо на один бит эквивалентен делению на два.

Как правильно отнять пол байта?

Добавлено: 13 фев 2019, 23:16
ElectroMechaniC
[ref=#ff8000]Sancho[/ref], спасибо! Запомню...