Cтраница 1
![]() |
Спецификаторы стандартных шаблонов числовых данных в NET. [1] |
Десятичный формат, используемый для отображения только целых типов. Отображает десятичные цифры, а для отрицательных чисел перед ними записывается символ минуса. Если задан спецификатор точности, то он указывает минимальное число отображаемых цифр. Если в числе больше цифр, то все они отобразятся. А если в числе меньше цифр, то слева от числа отобразятся нули. [2]
Фиксированный десятичный формат при вводе, десятичных разрядов ( Fixed decimals) - позволяет ввести в поле со счетчиком количество десятичных знаков после запятой при вводе на листе числовых констант. После задания положительного числа, запятая передвигается влево, а после задания отрицательного числа, запятая передвигается вправо. Если значение в поле со счетчиком десятичных разрядов осталось пустым или содержит нулевое значение, то десятичную запятую необходимо установить вручную. [3]
Двоично-кодированный десятичный формат представления BCD ( binary coded decimal) представляет собой числа в позиционной десятичной системе, где каждая цифра числа занимает 4 бита. Арифметические операции с BCD-числами требуют применения специального математического аппарата, малоэффективны в сравнении с обычным двоичным представлением. Но, с другой стороны, BCD оказывается очень удобным при организации клавиатурного ввода и индикации. [4]
Можно рассматривать упакованный десятичный формат как компактный способ выражения общепринятых символьно - фор - матизованных десятичных величин. Каждый байт упакованных десятичных цифр будет содержать две числовые цифры, за исключением младшего байта, который обычно будет содержать одну числовую цифру и одну цифру для изображения знака числа. Примеры десятичных величин вместе с соответствующими им упакованными форматами длиной 4 байта приведены в табл. 4.1. Хотя длины полей этих величин в каждом примере равны 4 байтам, достаточно иметь длину, равную такому количеству байтов, чтобы вместить крайнюю левую значащую ( ненулевую) упакованную десятичную цифру. Заметим, что знаковая цифра для показанных на иллюстрации величин различна для аналогичных положительных или отрицательных конфигураций. Правильный знак плюс можно представить шестнадцатеричны-ми буквенными цифрами А, С, Е или F; правильный отрицательный знак может быть представлен в виде D или В. [5]
По умолчанию принимается десятичный формат. Все разряды группы, специфицированной символами z и х, принимают такое состояние. [6]
Например, упакованный десятичный формат, предназначенный для хранения целых чисел с 18 значащими цифрами и занимающий в памяти 10 байт ( старший из которых знаковый), использует именно этот вариант. [7]
Числа в упакованном десятичном формате представляются полем из 1 или более байтов, в котором каждый отдельный полубайт содержит десятичную величину, выраженную в форме шестнадцатеричной цифры. [8]
Второй операнд имеет упакованный десятичный формат. Он проверяется на допустимость кодов знака и цифр. Наличие недопустимых кодов фиксируется как особый случай, относящийся к данным, и вызывает программное прерывание. Десятичный операнд занимает в памяти 8 байтов. Четыре младших бита поля используются для представления знака. Остальные 60 битов содержат 15 цифр в двоично-десятичном коде. Упакованный формат десятичных данных описан в гл. [9]
По умолчанию считается заданным десятичный формат для счетчиков и символьный формат для всех остальных памятей. Если длина не задана, то ее значение берется из дескриптора памяти, а для счетчика длина устанавливается равной 4 байтам. [10]
Если в поле упакованного десятичного формата содержится больше цифр, чем может поместиться в поле зонного формата, то избыточные старшие цифры теряются. [11]
Первый операнд представлен в упакованном десятичном формате. Сдвигаются только цифры операнда, знак в сдвиге не участвует. Освобожденные десятичные позиции заполняются нулями. [12]
Десятичные команды обрабатывают данные, имеющие десятичный формат, команды с плавающей точкой - данные / имеющие формат с плавающей точкой. [13]
Они преобразуются командой PACK в упакованный десятичный формат. [14]
Сравнивается содержимое первого операнда в упакованном десятичном формате с содержимым второго операнда в упакованном десятичном формате. Сравнение производится справа налево по всем цифрам обоих операндов. Если указатели длины двух операндов не равны между собой, то более короткое поле расширяется нулями со стороны старших разрядов до длины более протяженного. Двоичная конфигурация самых правых полубайтов каждого поля проверяется только с целью определения вида знака - плюс или минус. Все допустимые коды знака плюс рассматриваются как совпадающие; аналогично рассматриваются допустимые коды знака минус. Конфигурация содержимого операндов не изменяется в процессе выполнения сравнения. Максимальная подразумеваемая или явная длина для любого из сравниваемых полей равна 16 байтам. [15]