Нужно знать числовой формат ниже заданного формата - PullRequest
0 голосов
/ 18 апреля 2020

Мне нужно определить формат следующих чисел, которые каким-то образом основаны на методе, используемом в автомобильной промышленности для хранения значений счетчиков, таких как «общее количество километров». Я нашел это в журнальной статье и уже пробовал UTF-8/16/32 и шестнадцатеричный

decimal number = 136
related number is : FF FF FF FF FF FF FF FF FF FF 00 05 49 B2 00 05

decimal number = 550
related number is : FF FF FF FF FF FF FF FF FF FF 00 15 6A 81 00 15

1 Ответ

2 голосов
/ 18 апреля 2020

Из статьи по инструктажу по перепрограммированию одометра своими руками ,

Поэтому единственными символами, которые хранят фактическую информацию, являются первые две шестнадцатеричные цифры, 33 и 85.

Здесь единственными символами, хранящими фактическую информацию, являются «05 49» и «15 6A», остальные символы являются контрольными суммами.

String a = "FF FF FF FF FF FF FF FF FF FF 00 05 49 B2 00 05".substring(33,38);
String b = "FF FF FF FF FF FF FF FF FF FF 00 15 6A 81 00 15".substring(33,38);
a = a.replaceAll("\\s+", "");
b = b.replaceAll("\\s+", "");
System.out.printf("%s %s%n", a, b);
int i = Integer.valueOf(a, 16);
int j = Integer.valueOf(b, 16);

System.out.println(i/10.0);
System.out.println(j/10.0);

, что дает

0549 156A
135.3
548.2

И я могу только предположить, что 135,3 - это ~ 136, а 548,2 - это ~ 550. По крайней мере, если бы я читал пробег, я бы рассмотрел эти довольно точные описания.

...