Как работать с форматом hex

Ответить
Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24 ноя 2017, 16:25
Откуда: Червоноград
Имя: Марьян

Как работать с форматом hex

Сообщение dizzyy »

пробую разобраться с rfid.
нему догнать вот что
я читаю блок , завожу его масив ..в масиве число кодируется допустим 4 битами ..число 1000 записывается A0 86 01 00
читаю числа 00 01 86 А0 , но не пойму как правильно записать это число в интеджер,
Безымянный.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Sancho
Полковник
Сообщения: 4066
Зарегистрирован: 25 дек 2015, 17:32
Откуда: Ярославль.
Имя: Александр
Поблагодарили: 5 раз
Контактная информация:

Как работать с форматом hex

Сообщение Sancho »

dizzyy писал(а): 28 июл 2020, 21:57 в масиве число кодируется допустим 4 битами ..число 1000 записывается A0 86 01 00
читаю числа 00 01 86 А0 , но не пойму как правильно записать это число в интеджер
Интежер - два байта. Пользуйте long
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24 ноя 2017, 16:25
Откуда: Червоноград
Имя: Марьян

Как работать с форматом hex

Сообщение dizzyy »

Вчера ночью нашел библиотеку конвертации будет время проверю..
Я уже и блок делал что стринг разбивает на чар, сравнивает и умножает и все равно какое то зло получается..
У меня раз получилось что было минусовое число, вот как раз из-за интеджера..
Спасибо, буду трезвым проверю
Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24 ноя 2017, 16:25
Откуда: Червоноград
Имя: Марьян

Как работать с форматом hex

Сообщение dizzyy »

[ref=#ff8000]Sancho[/ref], зачем велосипед мне думать, действитель взял штатний байт то Doubleword и все сработало
ecoins
Полковник
Сообщения: 4020
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 137 раз
Поблагодарили: 167 раз

Как работать с форматом hex

Сообщение ecoins »

dizzyy писал(а): 29 июл 2020, 17:58 Вчера ночью нашел библиотеку конвертации будет время проверю..
Может будет полезен функция из разработанной нами библиотеки для lcd и консоли - возвращает цифру в форматах
'B' - 8-разрядное двоичное число b00000000;
'b' - 4-разрядное двоичное число b0000;
'H' - 4-разрядное HEX число 0xFFFF;
'h' - 2-разрядное HEX число 0xFF;
'D' - целое число uin32_t;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// var_ID: Возвращает цифру в символьной форме из выводимой переменной начиная со старшей позиции
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
char getCharVal(uint32_t val, uint8_t upper, char mode, uint8_t len, uint8_t n){uint32_t buff32=0;
if((n>len) || (n>10)) n=0;
if((mode=='B') || (mode=='b')) {buff32=(val>>(len-n))&1;}
if((mode=='H') || (mode=='h')) {buff32=(val>>(len-n)*4)&0xf;}
if((mode=='D') || (mode=='0') ||(mode=='1') ||(mode=='2') || (mode=='3') || (mode=='T')) {n=len-n+1; while(n!=0) {buff32=val; val/=10; buff32=buff32-(val*10); n--;};}
if(buff32<=9) {buff32=buff32 +'0';} else {buff32=buff32-10+(upper ? 'A' : 'a') ;}
return (uint8_t)buff32;};
Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24 ноя 2017, 16:25
Откуда: Червоноград
Имя: Марьян

Как работать с форматом hex

Сообщение dizzyy »

я смотрел в сторону вот этой библиотеки

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

https://github.com/yoursunny/PriUint64

#include <PriUint64.h>

  void setup()

{

  Serial.begin(9600);
  Serial.println();

  uint64_t x = 0x7E007A88D2;
  Serial.println(PriUint64<HEX>(x));
  Serial.println(PriUint64<DEC>(x));
  Serial.println(PriUint64<OCT>(x));
  Serial.println(PriUint64<BIN>(x));

  Serial.println();

  uint64_t y = 541173909714;
  Serial.println(PriUint64<HEX>(y));
  Serial.println(PriUint64<DEC>(y));
  Serial.println(PriUint64<OCT>(y));
  Serial.println(PriUint64<BIN>(y));
}

void loop() {}
Ответить

Вернуться в «Помогите, а то я "нимагу"»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя