Суббота, 22.01.2022 08:00

Практическое применение булевой арифметики. Часть вторая - Двоичная система счисления

Практическое применение булевой арифметики. Часть вторая - Двоичная система счисления

В прошлой части мы рассмотрели основы булевой арифметики, сегодня мы рассмотрим основы двоичного счисления и как данные хранятся в памяти ПК на примере С++ в Qt.

В любом ПК и микропроцессоре используется двоичная система счисления для кодирования информации.

В двоичной системе счисления существуют только два символа 0 и 1.

Последовательная запись из нулей и единиц позволяет закодировать любую информацию.

Когда мы говорим о системе счисления мы говорим о цифрах.

Давайте рассмотрим таблицу

binsystem.png

byte.png

Как видите кодирование в двоичной системе начинается справа на лево. Новые цифры всегда добавляются справа.

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

binsystem_numbers.png

Из приведённой выше таблицы можно сделать интересные выводы - если в одном бите мы можем хранить только два значения, то в двух уже 4, в трех – 8 и так далее.

Хранение данных в памяти ПК

На любой платформе самой маленькой единицей информации будет 1 бит (bit).

В программировании принято считать, что все данные хранятся в виде байтов.

На ПК 1 байт равен 8 бит, но этот размер зависит от архитектуры и реализации компилятора.

Многие микропроцессоры тоже оперируют 8 битным байтом.

На ПК в оперативной памяти или на носителях, все данные хранятся в виде байтов.

Давайте рассмотрим рисунок:

byte_numbers.png

 

На рисунке представлена структура байта и количество отдельных значений, которое можно сохранить в одном байте.

Мы можем сохранить 8 значений (0-1) – такие значения отлично подойдут для хранения разнообразных флагов или одного из состояний устройств (включено/выключено, работает/не работает).

Так же мы можем сохранить 4 значения (0-4) здесь можно хранить одно несколько состояний, например, устройство (работает, не работает, предупреждение или ошибка).

Можно хранить два значения (0-15)  - одно из 16 состояний устройства.

Далее мы можем хранить значения до (0-31), одно значение (0-3) и одно значение 0-1 или значения до (0-31) и три значения (0-1)

И так далее.

Типы данных С++ и Qt - байт

В С++ существует всего три типа данных, поддерживающих один байт это

char – может хранить значения от -127 до 127 или от 0 до 255

unsigned char – может хранить значения от 0 до 255

signed char – может хранить значения от -127 до 127

В Qt в дополнение к типам C++ существуют

qint8 – этот тип всегда будет 8-битным независимо от физической платформы.

Для битовых операций всегда используйте unsigned char или qint8!

Заключение

Сегодня мы рассмотрели основы двоичной системы счисления и типы данных в C++.

В следующей части мы рассмотрим работу с двоичными данными в C++ и QT5.

Категория C++
Теги Cpp

Добавить комментарий

Простой текст

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Строки и абзацы переносятся автоматически.
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.
Просмотров: 49