Подписанный оверпанч - Википедия - Signed overpunch
Эта статья нужны дополнительные цитаты для проверка.Март 2008 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
А подписанный оверпанс это код, используемый для хранения знак числа, изменив последнюю цифру. Он используется в символьных данных на мэйнфреймах IBM такими языками, как КОБОЛ, PL / I, и РПГ.[1] Его цель - сохранить символ, который в противном случае использовался бы в знаковой цифре.[2] Код получен из Код перфокарты Холлерита, где в одном столбце карточки можно ввести и цифру, и знак. Это называется перфорацией, потому что цифра в этом столбце имеет отметку 12 или 11 над ней для обозначения знака. Символьные данные, которые могут содержать перфорацию, называются зонный десятичный.
В ПАКЕТ
инструкция по Архитектура IBM System / 360 машины преобразует знак зонного десятичного числа при преобразовании в упакованная десятичная дробь, а соответствующие УНПК
Команда установит правильный знак перфорации для своего зонального десятичного вывода.[3]
Языковая поддержка
PL / I
PL / I использует РИСУНОК
для объявления зонированных десятичных данных с перфорацией со знаком. Каждый символ в числовом изображении, кроме V
, который указывает положение предполагаемой десятичной точки, представляет собой цифру. Картинный персонаж Т
, я
, или же р
указывает позицию цифры, которая может содержать перфорацию. Т
указывает, что позиция будет содержать {–I, если положительное, и} –R, если отрицательное. я
указывает, что позиция будет содержать {–I, если положительное значение, и 0-9, если оно отрицательное. р
указывает, что позиция будет содержать 0–9 в случае положительного значения и} –R в случае отрицательного значения.
Например ИЗОБРАЖЕНИЕ 'Z99R'
описывает четырехзначное числовое поле. Первая позиция может быть пустой или содержать цифры 0–9. Следующие две позиции будут содержать цифры, а четвертая позиция будет содержать 0–9 для положительного числа и} –R для отрицательного.[4]
Присвоение значения 1021 изображенному выше изображению сохранит в памяти символы «1021»; присвоение -1021 сохранит "102J".
КОБОЛ
COBOL использует графический символ "S" для ДИСПЛЕЙ ИСПОЛЬЗОВАНИЯ
данные без ЗНАК - ОТДЕЛЬНЫЙ ХАРАКТЕР
чтобы обозначить перебор. ЗНАК ВЕДУЩИЙ
указывает, что перфорация находится над первым символом поля, по умолчанию, ЗНАК ТРЕБУЕТСЯ
, помещает его над последним символом. ЗНАК ТРЕБУЕТСЯ
по умолчанию.[5]
C / C ++
В языке C не предусмотрена зонная десятичная дробь. Компилятор IBM ILE C / C ++ для System i предоставляет функции для преобразования между int
или же двойной
и зонный десятичный:[6]
- QXXDTOZ () - Преобразование двойного числа в зонное десятичное
- QXXITOZ () - Преобразование целого числа в зонное десятичное
- QXXZTOD () - Преобразование зонального десятичного числа в двойное
- QXXZTOI () - Преобразование зонального десятичного числа в целое число
Коды
EBCDIC персонаж | Цифра | Знак | Код карты[7] |
---|---|---|---|
{ | 0 | + | 12-0 |
А | 1 | + | 12-1 |
B | 2 | + | 12-2 |
C | 3 | + | 12-3 |
D | 4 | + | 12-4 |
E | 5 | + | 12-5 |
F | 6 | + | 12-6 |
грамм | 7 | + | 12-7 |
ЧАС | 8 | + | 12-8 |
я | 9 | + | 12-9 |
} | 0 | - | 11-0 |
J | 1 | - | 11-1 |
K | 2 | - | 11-2 |
L | 3 | - | 11-3 |
M | 4 | - | 11-4 |
N | 5 | - | 11-5 |
О | 6 | - | 11-6 |
п | 7 | - | 11-7 |
Q | 8 | - | 11-8 |
р | 9 | - | 11-9 |
Примеры
10} равно -100
45А это 451
Десятичные точки обычно подразумеваются и явно не указываются в тексте. Использование чисел с двумя десятичными цифрами:
1000} составляет -100,00
Представление ASCII
COBOL-представление подписанных символов переноса "не стандартизировано в ASCII, и разные компиляторы используют разные коды переноса". В большинстве случаев «представление отличается от результата преобразования подписанного поля EBCDIC в ASCII с таблицей преобразования».[8] Компиляторы PL / I в системах ASCII используют тот же набор символов, что и в EBCDIC, для представления перфорированных символов.
Рекомендации
- ^ Корпорация IBM (июнь 1994 г.). RPG / 400 ссылку (PDF). п. 403. Получено 7 августа, 2018.
- ^ "Tech Talk, учебные пособия по COBOL, преобразование подписанных полей из EBCDIC в ASCII". Получено 2008-03-15.
- ^ Корпорация IBM (октябрь 2001 г.). z / Архитектура Принципы работы (2-е изд.). С. 7–112, 7–158. Получено 7 августа, 2018.
- ^ Корпорация IBM (июнь 1995 г.). IBM PL / I для справочника по языку MVS и VM (PDF). стр. 294–296. Получено 2 августа, 2018.
- ^ Корпорация IBM. «Enterprise COBOL для z / OS, V4.2, справочник по языку». Центр знаний IBM. Получено 1 мая, 2020.
- ^ Корпорация IBM. «Библиотечные функции». Центр знаний IBM. Получено 1 мая, 2020.
- ^ Корпорация IBM (1989). Краткое описание расширенной архитектуры System / 370. п. 41.
- ^ «Преобразование подписанных полей из EBCDIC в ASCII». Специалисты по DISC Media Conversion. Получено 29 ноя, 2018.