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

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

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

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

В двоичной системе счисления существуют только два символа 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)

И так далее.

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

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

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

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

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

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

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

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

Заключение

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

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

Прочитано 1348 раз Последнее изменение Суббота, 22 января 2022 19:00
Топ-100