русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Ввод В ы в о д


Дата добавления: 2015-06-12; просмотров: 472; Нарушение авторских прав


a b c a b c a&b a|b a&c x=a&c a+c

1 1 1 1 1 1 1 1 1 1 2

2 2 2 0 0 2 0 0 0 0 2

4 4 4 0 0 4 0 0 0 0 4

1 2 8 1 0 0 0 1 0 0 1

Как показывает проведённый компьютерный эксперимент, битовые поля можно выводить, но нельзя вводить. Поэтому для ввода использовали обычную дополнительную переменную b1.

Если введённое число в двоичном представлении занимает большее количество бит, чем указано при объявлении соответствующего поля битов, то остаются крайние правые биты. Например, так как число 810=10002 в трёх битах разместить нельзя, то в переменной c остаются три правые бита, т.е. число 0. Поэтому на практике следует разумно выбирать длины битовых полей. Если известно, например, что поле будет содержать информацию, которая характеризуется двумя возможными значениями типа “да” или “нет” (сдал или не сдал зачёт, занимается или не занимается спортом и т. п.), то для её хранения достаточно одного бита. В таком случае на одном битовом поле мы окономим память, по крайней мере, в восемь раз, так как без использования таких полей мы бы объявили нашу переменную в лучшем случае с типом char.

Этот пример показывает, что для битовых полей можно использовать те же операции, что и для целых чисел (арифметические, битовые и др.).

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

Поля битов в объединениях используются для доступа к нужным битам другого поля простого типа (char, float, int и др), входящего в объединение.

Пример 2 (+) показывает, как “посмотреть” код нажатой на клавиатуре клавиши, включая и управляющие (Insert, Delete, стрелки и другие).

int main()

{ /* Объявляем структурный тип, включающий восемь полей битов, каждый из которых имеет размерность один бит. */

struct TMyByte



{ unsigned b1:1; unsigned b2:1;

unsigned b3:1; unsigned b4:1;

unsigned b5:1; unsigned b6:1;

unsigned b7:1; unsigned b8:1;

} ;

union TUI

{ /* Структурная переменная из восьми полей битов (но не массива, массив полей битов недопустим !) для представления кода символа ch в двоичной системе счисления */

TMyByte MyB;

/*Структурная переменная из двух полей битов, каждое длиной четыре, для получения шестнадцатеричного представления символа ch. */

struct { unsigned n1:4;

unsigned n2:4;

} num16;

char ch; // Символ

} N;

cout<<"0--EXIT"<<endl;

cout<<"Symbol Code16 Code10 Code2"<<endl;

while (1)

{ cout<<" ";

N.ch=getche();

/* Ввод символа. При этом клавишу “Enter” нажимать не надо и символ будет отображаться на экране. */

if (N.ch=='0')break;

/* Вывод кода в шестнадцатеричной системе счисления */

cout<<" "<< hex<<N.num16.n2<<N.num16.n1;

/* Вывод кода в десятичной системе счисления */

printf(" %d ", N.num16.n2*16+N.num16.n1);

gotoxy(30,wherey());

/* Вывод восьми полей битов, т.е.

вывод кода в двоичной системе счисления */

cout<<N.MyB.b8<<N.MyB.b7<<N.MyB.b6<<N.MyB.b5<<

N.MyB.b4<<N.MyB.b3<<N.MyB.b2<<N.MyB.b1<<endl;

}

return 0; }

 

Результат.



<== предыдущая лекция | следующая лекция ==>
Поля битов (битовые поля) | Symbol Code16 Code10 Code2


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.188 сек.