Cтраница 2
В машинном языке ЕС ЭВМ предусмотрена обработка пелых числовых величин, представленных в виде двоичных чисел с фиксиро -; ванной точкой; числовых величин, представленных в виде шестнадцатеричных чисел с плавающей точкой; десятичных чисел, представленных в виде последовательности двоично-кодированных цифр; цепочек битов фиксированной и произвольной длин; символьных полей переменной длины. Команды допускают обработку отдельных битов, байтов, слов фиксированной длины, полей произвольной длины. [16]
Gs ( x) t соответствующих любому биту, которым помечен любой узел разветвления. Так как цепочка битов, которой помечен каждый узел разветвления, является конечной, то ее длина ограниченна. После того как нами получен некоторый бит из этой цепочки, найдется распределение GI ( X), которому будут соответствовать остальные биты из этой цепочки и биты, которыми помечены потомки данного узла. [17]
Язык допускает целые и вещественные числа. В дополнение к цепочке битов, изображающей само число, как этого требует аппаратура, с каждым числом во время выполнения связан дескриптор типа. [18]
Если во время выполнения программы требуется наличие дескрипторов для чисел, как в языках Лисп и Снобол 4, необходимо другое представление, поскольку аппаратных дескрипторов нет. В Лиспе вещественное число должно храниться в виде цепочки битов вместе с индикатором типа данных, указывающим, что эта цепочка битов является закодированным вещественным числом. Поскольку программное моделирование арифметики обычно очень неэффективно, желательно применять арифметические операции, имеющиеся в аппаратуре. Можно использовать аппаратное представление числа в виде цепочки битов и, поскольку цепочка битов, скорее всего, занимает полное слово памяти, разместить дескриптор в отдельном слове где-либо в памяти вместе с указателем на слово, содержащее эту цепочку битов. [19]
Широко известный метод Хаффмена относится к статистическим методам сжатия. Идея метода - часто повторяющиеся символы нужно кодировать более короткими цепочками битов, чем цепочки редких символов. Строится двоичное дерево, листья соответствуют кодируемым символам, код символа представляется последовательностью значений ребер ( эти значения в двоичном дереве суть 1 и 0), ведущих от корня к листу. Листья символов с высокой вероятностью появления находятся ближе к корню, чем листья маловероятных символов. [20]
В этом случае внутреннее представление элемента данных воспринимается как цепочка битов, прижатая к правому краю. [21]
Хеширование является основным методом хранения множества, когда совокупность возможных элементов множества велика. Когда она мала, применимо более простое представление, использующее одну цепочку битов. Предположим, что совокупность содержит N элементов. Тогда множество элементов совокупности можно представить битовой цепочкой длины JV, где t - й бит цепочки равен 1, если et принадлежит множеству, и 0, если не принадлежит. Эта битовая цепочка является характеристической функцией множества. При таком представлении включение элемента в множество сводится к присваиванию единичного значения соответствующему биту, исключение - в присваивании соответствующему биту нулевого значения, а принадлежность определяется простым опросом соответствующего бита, В большинстве машин имеются операции логического умножения ( и) и логического сложения ( или) над битовыми цепочками, позволяющие прямое и эффективное выполнение операций над множеством. Такие средства в аппаратуре являются серьезным аргументом в пользу представления множеств с помощью цепочки битов. [22]
Данные типа БУЛЕВО ( ЛОГИЧЕСКОЕ) пред назначены для описания двоичных ( булевых) величин. Это могут быть либо одиночные биты ( разряды) с возможными значениями истина или ложь, либо цепочки битов. Данные этого типа обычно используются для управления ходом вычислительного процесса в программах и в качестве значений логических выражений флажков условий. В ПО структурного синтеза данными этого типа описываются многие свойства проектируемых объектов. Операции над данными типа БУЛЕВО ( И, ИЛИ, НЕ и др.) - наиболее быстрые. [23]
Если во время выполнения программы требуется наличие дескрипторов для чисел, как в языках Лисп и Снобол 4, необходимо другое представление, поскольку аппаратных дескрипторов нет. В Лиспе вещественное число должно храниться в виде цепочки битов вместе с индикатором типа данных, указывающим, что эта цепочка битов является закодированным вещественным числом. Поскольку программное моделирование арифметики обычно очень неэффективно, желательно применять арифметические операции, имеющиеся в аппаратуре. Можно использовать аппаратное представление числа в виде цепочки битов и, поскольку цепочка битов, скорее всего, занимает полное слово памяти, разместить дескриптор в отдельном слове где-либо в памяти вместе с указателем на слово, содержащее эту цепочку битов. [24]
Внешние функции могут привнести в систему Снобол-4 новые типы данных. В прототипе загрузки можно указать имена этих новых типов. Типичным примером служит внешняя функция, создающая цепочки битов с именем типа БИТ. [25]
В большинстве языков в том или ином виде предусмотрены двоичные данные: либо простые одиночные биты ( true-false - истина-ложь), либо данные типа bit string - цепочки битов. Одиночные биты обычно называются данными типа Boolean - логический тип данных. По существу одним из основных доводов в пользу включения в языки цепочек битов как типа данных является получение прямого доступа к аппаратным цепочкам битов. Цепочки битов почти всегда имеют фиксированную или ограниченную длину, задаваемую в декларации. [26]
Элемент данных может занимать часть машинного слова, группу подряд идущих слов или группу отдельных слов. В общем случае позицию можно задавать с помощью адреса, с которого начинается цепочка битов, представляющая элемент данных. [27]
В большинстве языков в том или ином виде предусмотрены двоичные данные: либо простые одиночные биты ( true-false - истина-ложь), либо данные типа bit string - цепочки битов. Одиночные биты обычно называются данными типа Boolean - логический тип данных. По существу одним из основных доводов в пользу включения в языки цепочек битов как типа данных является получение прямого доступа к аппаратным цепочкам битов. Цепочки битов почти всегда имеют фиксированную или ограниченную длину, задаваемую в декларации. [28]
Простой элемент данных отличается тем, что операция доступа и изменения выполняется обычно над всем элементом целиком. Как упоминалось выше, эта отличительная особенность не является абсолютной, она зависит от языка. К основным типам данных, с которыми мы будем иметь дело в этом разделе, относятся числа, цепочки литер, логические значения, цепочки битов, символы и указатели. [29]
В большинстве языков в том или ином виде предусмотрены двоичные данные: либо простые одиночные биты ( true-false - истина-ложь), либо данные типа bit string - цепочки битов. Одиночные биты обычно называются данными типа Boolean - логический тип данных. По существу одним из основных доводов в пользу включения в языки цепочек битов как типа данных является получение прямого доступа к аппаратным цепочкам битов. Цепочки битов почти всегда имеют фиксированную или ограниченную длину, задаваемую в декларации. [30]