Упакованный десятичный формат (но НЕ Comp-3)

Я встречаю ряд числовых полей в этом файле данных. Поля имеют размер 6 байт (12 полубайтов).

Первый полубайт - во всех случаях пока равен "4". Второй полубайт представляет собой количество цифр СЛЕВА от десятичной точки. Остальные кусочки являются значением поля.

Так - например, 4327 0000 0000 = 270,0 и, 4260 0000 0000 = 60,0 и, 4026 3000 0000 = 0,263

Мои вопросы: значима ли цифра «4»? (Как почему?)

Есть ли вероятность, что этот первый полубайт также содержит знаковый бит? (Все примеры, которые у меня есть в настоящее время, являются положительными значениями, поэтому у меня нет системы отсчета.)

Если бы это было более длинное поле, скажем, с 16 полубайтами, возможно ли, что цифра слева от десятичной дроби была бы выше 9, и как бы это было представлено? (Второй полубайт как «A»/«B»/и т. д. или увеличить первый полубайт, чтобы он отображал «5»?

Кто-нибудь видел этот конкретный шаблон и знает, что происходит?

(Я не знаю язык программирования, используемый для создания файла.)


person Ken Benson    schedule 14.08.2012    source источник


Ответы (1)


Я думаю, что 4 - это откусывание типа. Тип указывает, как интерпретировать остальные фрагменты.

person Paul Irofti    schedule 15.08.2012
comment
Каковы другие «типы»? Есть какая-то диаграмма или что-то в этом роде? - person Ken Benson; 15.08.2012
comment
В вашем контексте я ничего не могу предположить. Но в дикой природе существует множество представлений, подобных приведенному выше. Например, тип «1» мог быть популярной кодировкой BCD, которая имеет дело только с целыми числами. С типом «1» вы можете представить остальные байты как цифры, поэтому 2-й полубайт становится цифрой, а не счетчиком. - person Paul Irofti; 16.08.2012