Как я могу реализовать BCD в Fortran?

Не уверен, что заголовок моего вопроса имеет смысл, так что потерпите меня. Я хотел бы найти систему для представления однозначных чисел с как можно меньшим количеством битов. Существует метод под названием «Плотное десятичное число» (https://en.wikipedia.org/wiki/Densely_packed_decimal), что было бы моим идеальным решением, но я даже не знаю, возможно ли это или как я могу реализовать его без дополнительных исследований или рекомендаций гуру.

Следующим лучшим вариантом была бы возможность использовать 4-битную систему адресации для представления цифр, но, опять же, я не уверен, что это вообще возможно.

Так! За исключением реализации вышеупомянутых методов/систем, я мог бы согласиться на 1-байтовый тип данных, который я мог бы использовать для представления пар двух целых чисел. Есть ли в Фортране 1-байтовый тип данных или он не допускает такого уровня контроля?


person papiro    schedule 20.06.2015    source источник


Ответы (1)


В (почти) каждом языке программирования есть 1-байтовый тип данных. Это характер. На самом деле это определение байта, что он может содержать символ по умолчанию.

Существует также 1-байтовый (строго говоря, 1-октетный) целочисленный тип в Фортране, доступный как integer(int8), где int8 — константа из модуля iso_fortran_env (Fortran 2008).

Оба могут быть использованы для реализации таких вещей. Будете ли вы использовать деление на другие числа, xoring или встроенные функции манипулирования битами Фортрана https://www.nsc.liu.se/~boein/f77to90/a5.html#section10 (вероятно, лучший вариант) решать вам.

person Vladimir F    schedule 20.06.2015
comment
Способен ли тип int8 хранить двузначное число? - person papiro; 21.06.2015
comment
Он хранит 256 различных значений в двоичном формате. - person Vladimir F; 21.06.2015