Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Битовые типы

Читайте также:
  1. Битовые операции и операции сдвига используются часто
  2. Лекция 1. Битовые операции.
  3. Тема 3. Битовые операции. Упакованные данные.
  4. Учет памяти. Битовые карты.

ПРЕДСТАВЛЕНИЕ БИТОВЫХ ТИПОВ. В ряде задач может потребовать-

ся работа с отдельными двоичными разрядами данных. Чаще всего та-

кие задачи возникают в системном программировании, когда, напри-

мер, отдельный разряд связан с состоянием отдельного аппаратного

переключателя или отдельной шины передачи данных и т.п. Данные

такого типа представляются в виде набора битов, упакованных в

байты или слова, и не связанных друг с другом. Операции над таки-

ми данными обеспечивают доступ к выбранному биту данного. В языке

PASCAL роль битовых типов выполняют беззнаковые целые типы byte и

word. Над этими типами помимо операций, характерных для числовых

типов, допускаются и побитовые операции. Аналогичным образом роль

битовых типов играют беззнаковые целые и в языке C.

В языке PL/1 существует специальный тип данных - строка би-

тов, объявляемый в программе, как: BIT(n).

Данные этого типа представляют собой последовательность бит

длиною n. Строка битов занимает целое число байт в памяти и при

необходимости дополняется справа нулями.

ОПЕРАЦИИ НАД БИТОВЫМИ ТИПАМИ. Над битовыми типами возможны

три группы специфических операций: операции булевой алгебры, опе-

рации сдвигов, операции сравнения.

Операции булевой алгебры - НЕ (not), ИЛИ (or), И (and), иск-

лючающее ИЛИ (xor). Эти операции и по названию, и по смыслу похо-

жи на операции над логическими операндами, но отличие в их приме-

нении к битовым операндам состоит в том, что операции выполняются

над отдельными разрядами операндов.

Так операция НЕ состоит в том, что каждый разряд операнда

изменяет значение на противоположный. Выполнение операции, напри-

мер, ИЛИ над двумя битовыми операндами состоит в том, что выпол-

няется ИЛИ между первым разрядом первого операнда и первым разря-

дом второго операнда, это дает первый разряд результата; затем

выполняется ИЛИ между вторым разрядом первого операнда и вторым

разрядом второго, получается второй разряд результата и т.д.

Ниже даны примеры выполнения побитовых логических операций:

а). x = 01101100 в). x = 01101100

not x = 10010011 y = 11001110

x and y = 01001100

б). x = 01101100 г). x = 01101100

y = 11001110 y = 11001110

x or y = 11101110 x xor y = 10100010

В некоторых языках (PASCAL) побитовые логические операции

обозначаются так же, как и операции над логическими операндами и

распознаются по типу операндов. В других языках (C) для побитовых

и общих логических операций используются разные обозначения. В

третьих (PL/1) - побитовые операции реализуются встроенными функ-

циями языка.

Операции сдвигов выполняют смещение двоичного кода на задан-

ное количество разрядов влево или вправо. Из трех возможных типов

сдвига (арифметический, логический, циклический) в языках прог-

раммирования обычно реализуется только логический (например, опе-

рациями shr, shl в PASCAL).

В операциях сравнения битовые данные интерпретируются как

целые без знака, и сравнение выполняется как сравнение целых чи-

сел. Битовые строки в языке PL/1 - более общий тип данных, к ко-

торому применимы также операции над строковыми данными, рассмат-

риваемые в главе 4.




Дата добавления: 2014-12-18; просмотров: 40 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав