Bit, Byte, Bool - Спускаемся на уровень ниже. (Ликбез)

Ответить
Аватара пользователя
Dryundel
Полковник
Сообщения: 2625
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 28 раз
Поблагодарили: 239 раз

Bit, Byte, Bool - Спускаемся на уровень ниже. (Ликбез)

Сообщение Dryundel »

.
Bit, Byte, Bool - вроде бы самые простые понятия на первый взгляд.
Однако в программе FLProg всё не так однозначно. Практически все пользователи понимают, что бит это минимальная единица хранения информации в классическом программировании и схемотехнике. В теории существует ещё трит, но это отдельная тема.
Байт - состоит из 8 бит, а bool - переменная, которая так же как и бит может принимать два значения true и false (0 и 1).
Это неопровержимая истина к которой не подкопаешься.

Парадокс заключается в том, что далеко не все догадываются о том, что при декларировании (создании) переменной типа bool мы запрашиваем и пользуемся минимальным размером данных для переменных - 1 байт (8 бит). Для bool используется всего один младший бит, остальное идёт в нагрузку. :)

Так вот когда мы пытаемся работать с битами в FBD, на самом деле используем байты.
Простой пример.
Блок преобразования нескольких бит (до 8 bit) в один байт (byte)
.
Bits-Byte.jpg
.
Всё бы хорошо, однако на самом деле, на более низком уровне, оперируем мы байтами. А биты наши являются условными, псевдо-битами, ведь доставляем в блок мы их с помощью переменной bool, которая не может занимать в памяти менее 1 байта (8 бит).
В более продвинутых процессорах бывает даже, что минимально-выделяемый объём памяти 2 байта (16 бит).
И хотя такое обозначение входов на блоке нельзя считать полностью корректным, для понимания на уровне FBD это нормально.

Вот такая маленькая, но полезная заметка получилась.
Всем удачи в просвещении.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Dryundel
Полковник
Сообщения: 2625
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 28 раз
Поблагодарили: 239 раз

Re: Bit, Byte, Bool - Спускаемся на уровень ниже. (Ликбез)

Сообщение Dryundel »

Что такое ТРИТ

Раз уж обмолвился об этом, расскажу очень коротко.
Бит на уровне схемотехники - это что то типа электролитического конденсатора. Он может быть либо заряжен, либо нет. Так и определяется значение 0 или 1.
Трит в свою очередь можно сравнить с неполярным конденсатором. Он может быть заряжен в дух направлениях и принимать три значения условно 1, 0 и -1.
Таким образом одна ячейка, которая в производстве не на много сложней, может нести в 1,5 раза больше информации.
Но что такое коэффициент 1,5 на одну ячейку памяти ?
Например, тремя битами можно закодировать 8 разных значений: 000, 001, 010, 011, 100, 101, 110, 111
Тремя же тритами уже 27 значений: -1-1-1, -1-10, -1-11, -10-1, -100, -101, -11-1... и т.д.
А это уже не в 1,5 раза больше, а коэффициент 3,375.
С увеличением ячеек растёт и коэффициент. Геометрическая прогрессия. Другая система счисления . 3 трита = 1 Tрайт.

Эта система была известна и опробована ещё в СССР в 50-х годах. Даже ЭВМ тогда соорудили на троичной логике. Что такое ЭВМ в СССР люди постарше должны помнить.
Почему троичная система не приобрела широкого распространения? Сложно сказать. Скорее всего из-за монополии. К тому времени в США первым компьютерам исполнилось более 10 лет.

Если продолжу дальше, это будет на грани политики, поэтому стоп... :)
Technician
Рядовой
Сообщения: 13
Зарегистрирован: 15 апр 2025, 16:29
Имя: Виктор
Благодарил (а): 4 раза
Поблагодарили: 4 раза

Re: Bit, Byte, Bool - Спускаемся на уровень ниже. (Ликбез)

Сообщение Technician »

Dryundel писал(а): 28 июл 2025, 19:32 Что такое ТРИТ
Эта система была известна и опробована ещё в СССР в 50-х годах. Даже ЭВМ тогда соорудили на троичной логике. Что такое ЭВМ в СССР люди постарше должны помнить.
Почему троичная система не приобрела широкого распространения? Сложно сказать. Скорее всего из-за монополии. К тому времени в США первым компьютерам исполнилось более 10 лет.

Если продолжу дальше, это будет на грани политики, поэтому стоп... :)
К сожалению не слышал про троичную систему :( , перевод это из двоичной системы счисления в десятичную :
0000 - 0
1000 - 1
0100 - 2
1100 - 3
Аватара пользователя
Dryundel
Полковник
Сообщения: 2625
Зарегистрирован: 22 май 2017, 23:15
Откуда: Ярославль
Имя: Андрей
Благодарил (а): 28 раз
Поблагодарили: 239 раз

Re: Bit, Byte, Bool - Спускаемся на уровень ниже. (Ликбез)

Сообщение Dryundel »

Technician писал(а): 29 июл 2025, 08:00 перевод это из двоичной системы счисления в десятичную :
0000 - 0
1000 - 1
0100 - 2
1100 - 3
Немного не так.
С младшего бита начало. Посмотрите во втором посте.
Ответить

Вернуться в «Обучающие примеры работы в FLProg»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя