пятница, 13 декабря 2019 г.

Бит как единица хранения информации.

Сегодня мы коротко поговорим о том, как хранится информация и что такое бит (bit) в программировании и компьютерах. Представим физический смысл хранения – что-то либо есть, либо его нет, и его количество. В нашем случае это носитель информации, например память компьютера или твердотельный накопитель, в котором мы имеем какое-то количество переключаемых триггеров, которые могут быть вкл. или выкл. В виде ячеек для хранения информации, которые могут хранить ноль или единицу.

Так, отлично, одна ячейка может хранить один бит информации. Чем больше таких ячеек, тем больше мы можем хранить информации. Для удобства мы можем группировать ячейки чтобы хранить информацию в группах, которые можем обработать за один раз, кажется это называется разрядностью. Какую информацию мы можем хранить? Например цифры, буквы, логические понятия, все то, что поможет нам организовать данные в осмысленную информацию. Например, цифр у нас десять, а в русском алфавите 32 буквы, плюс какие-то символы или знаки препинания, т.е. например первая цифра это ноль, а первая буква это “а” и так далее.

Что бы хранить десять цифр (0-9), из которых мы потом можем составлять любые числа, нам нужно на уровне железа хранить каким-то образом 10 состояний. Мы помним, что одна ячейка хранит один бит, т.е. два состояния (0 или 1). Если мы сгруппируем две ячейки, то получим 4 состояния (00 11 01 10). Все еще мало для представления десяти основных цифр, идем дальше. Для удобства будем группировать кратно двум, чтобы сократить количество одновременной обработки групп, которые нужно обрабатывать за один вычислительный проход. Ок, давайте сгруппируем четыре ячейки, получим 2 в 4й степени, т. е. 16 состояний. Для цифр норм, но все еще мало для алфавита. Ок, группируем 8 ячеек, получаем 256 состояний, теперь этого достаточно чтобы описать цифры и основные алфавиты, например английский. Но есть исключения, например иероглифы азиатских языков, для которых нужно больше битов для хранения всех состояний, необходимых для хранения всех символов.

Теперь нужно понять, что чтобы записать любое число на экране нам достаточно десяти состояний (для десяти цифр), но чтобы вычислять математические выражения нам нужен отдельный набор состояний для каждого числа, таким образом, с помощью 8 бит, мы можем получить целое число от 0 до 256 (или от -128 до +127). И этого не очень хватает, значит нам нужно наращивать наши группы дальше. Для удобства, по мере возрастания, назовем наши группы байтами (1byte = 8bit), килобайтами, мегабайтами, гигабайтами и т.д. В свою очередь 2 байта дают нам 65535 состояний, а 4 байта 4294967295 состояний, т.е. такие числа мы можем использовать для расчётов без учета знака, или в два раза меньше, если мы условимся, что половина из них может быть отрицательным значением, а вторая положительным. В программировании это называется типами, которые нам нужно указывать для переменных, содержащих какую-то порцию информации для дальнейшего использования.

Bitwise operators 

Перегуд В.

Комментариев нет:

Отправить комментарий