Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Первые шаги в программировании: основы, Си, Objective-c


1.13

Как хранится и записывается информация. Биты и байты

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

В одном байте - 8 бит
В одном бите может быть записан либо 0 либо 1

А сколько же байт находится в килобайте? Или в мегабайте?

1 бит = двоичная цифра (0 или 1) / логическое значение (ДА / НЕТ)
8 бит = 1 байт - символ (ASCII)
1 Кб = 1024 байт - килобайт
1 Мб = 1024 Кб - мегабайт
1 Гб = 1024 Мб - гигабайт
1 Тб = 1024 Гб - терабайт

Устройства предназначенные

для хранения информации

и виды памяти в которых хранятся данные


- Кэш память - память которая расположена на самом процессоре - самая маленькая по объему - порядка нескольких мегабайт, но самая быстрая. Это Оперативно Запоминающее Устройство - ОЗУ - при выключении напряжения данные стираются
- Оперативная память компьютера - хранятся текущие данные программ - имеет тип ОЗУ
- Магнитные диски - дискеты, жеские диски - постоянное запоминающее устройство - ПЗУ
- Оптические диски - CD, DVD...
- Флеш-память - разновидность полупроводниковой технологии электрически перепрограммируемой памяти
- Твердотельные диски - (SSD, solid-state drive) — компьютерное не механическое запоминающее устройство на основе микросхем памяти.

Биты и Байты

Итак разберемся с битами и байтами поподробнее:
- в одном байте 8 бит (восемь двоичных разрядов - в одном разряде (бите) содержится либо 0 либо 1 ).

В двоичном виде полностью записанный 1 байт можно представить так:
1111 1111 ( т.е. мы имеем 8 бит информации - от нулей до единиц)

"Полбайта" полностью записанных единицами, ( если можно так сказать :) ... полбайта в природе не существует... это для примера) в десятичном виде имеет значение 15 ( 1112 = 1510)
Это означает, что в 4-х двоичных разрядах (битах) можно записать максимальное число 15, а числовых комбинаций (чередований нулей и единиц) можно записать 16 (от 0000 до 1111)

Полностью записанный байт (состоящий из восьми единиц - 1111 1111) - имеет значение 255 в десятичной система счисления.
Он имеет 256 числовых комбинаций (от всех нулей до всех единиц)

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

Справка

Если вы знакомы с графическими программами и, в частности, с настройками цветов, то вы наверняка обращали внимание на варианты записи цвета.
Например цвета палитры R, G, B (красный, зеленый, синий) - имеют диапазон значений от 0 до 255
Это как раз и есть двоичная запись.


В шестнадцатеричной системе счисления "полбайта" имеют запись в виде "F".
Соответственно "FF" - это целый байт имеющий значение 255 в десятичной системе счисления - FF16 = 1510

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

Вопрос: сколько же байт отводится под хранение целого числа?
Чем больше байт отводится под хранение, тем большим диапазоном чисел можно пользоваться.

В 1 байте - максимум 255 - но это только для беззнаковых чисел (от 0 и выше)
2 байта - это максимум 65536

Под хранение целого числа ( тип int - от intager) отводится 4 байта - это миллиарды в значении числа

Однако может потребоваться хранение чисел со знаком - для хранения отрицательных чисел.

Как хранятся отрицательные числа?
Для хранения числа со знаком необходимо выделить один из разрядов (1 бит) для того, чтобы указать - является это число отрицательным или нет.
Для этих целей выделяется старший бит (самый левый)
0 - это показатель положительного числа
1 - показатель отрицательного числа

В этом случае мы сразу теряем в диапазоне чисел, которые мы можем хранить в одном байте.
Получается, что 1 байт выделенный для хранения знакового целого числа может содержит диапазон от -128 до +127
На первый взгляд этот диапазон не симметричный - это происходит от того, что счет ведется от 0, а не от 1

Следовательно запись в двоичном виде числа 01111 - будет соответствовать 15 в десятичной системе
В этой записи 0 - это указатель на знак числа

 

Посмотреть полную новость www.tryobj.com

 



В избранное