Сколько бит?

Помогите проекту. Поделитесь с друзьями.

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

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

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

Давайте кратко рассмотрим алгоритм работы микропроцессора (МП) на примере сложения двух цифр.

  1. Сначала МП считывает значение одного числа по указанному адресу ячейки памяти.
  2. Далее он считывает другое значение из второй ячейки.
  3. Складывает оба значения.
  4. Возвращает их суму в ячейку памяти.

Вот такой монотонной работой занимаются микропроцессоры. Для выполнения одной команды ему необходимо выполнить четыре операции. Однако современные МП выполняют более 1 000 000 000 операций за одну секунду. Микроконтроллеры же выполняют более 1 000 000 операций, чего, как правило, предостаточно для такого крохотного устройства.

Данные, с которыми оперирует микропроцессор, представляют собой набор цифр. Поэтому нашей целью является рассмотреть, какие цифры, а точнее системы счисления “понимает” микроконтроллер.

Десятичная система счисления

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

Математически данная она состоит из десяти разных символов 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, поэтому она и называется десятичной. С помощью указанных символов легко отобразить любое число.

Основанием десятичной системы является 10. Когда при счете использованы все знаки от 0 до 9, то, чтобы продолжить дальнейший счет, необходимо вместо символа 9 поставить символ 0, т. е. обнулить предыдущее значение, а слева от нуля записать символ 1. И так можно продолжать счет до бесконечности, прибавляя слева от текущей позиции цифры последующую.

Каждая позиция цифры имеет свой вес. Наименьший вес имеет позиции, находящаяся в крайнем правом положении. По мере перемещения слева на право, вес позиции возрастает.

Например, число 2345 имеет 4 позиции. В крайней левой позиции отображаются единицы, в данном случае 5 единиц, а степень 10 имеет нулевое значение. Далее вес позиции увеличивается. Следующее значение, расположенное слева от предыдущего, уже содержит десятки, а 10 имеет степень 1, поэтому во второй позиции числа 2345 четыре десятка.

Далее перемещаемся по разрядам 2345 справа налево и увеличиваем степень 10 еще на одну единицу, т. е. имеем 102. Соответственно получаем три сотни. И последняя цифра, она же первая по счету, если считать слева на право, имеет наибольший вес для, т. е. 103, и поэтому имеем 2000. Чтобы получить окончательный результат, следует сложить количество значений цифр всех позиций.

Двоичная система счисления

Двоичная система счисления оперирует всего лишь двумя символами 0 и 1. Она повсеместно применяется в цифровой технике, поскольку очень удачно сочетается с двумя устойчивыми состояниями электрической цепей: включено и выключено либо есть сигнал и нет сигнала. Также нулем еще обозначают сигнал низкого уровня, а единицей – высокого.

Порядок записи двоичного числа полностью соответствует десятичному. Веса позиций также возрастают справа налево. Только основанием является 2, а не 10.

Чтобы отличать двоичную систему от десятичной в цифровой технике используют индекс 2 и 10 соответственно:

11012 – двоичное;

110110 – десятичное.

При написании кода программы для обозначения двоичного значения перед ним ставится префикс 0b, например 0b11010101. Если записывается десятичное, то перед ним ничего не ставится.

0b11010101 – двоичное;

11010101 – десятичное.

Бит и байт

Двоичная система счисления также используется при хранении и обработке информации.

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

Каждая ячейка содержит один бит данных. Бит – это единица измерения объема памяти. В одном бите можно запоминать максимум два значения: 0 – это одно значение, а 1 – второе.

Bit происходит от двух английских слов Binary Digit (двоичное число).

При работе с битами регистров микроконтроллера мы будем часто обращаться к таким понятиям, как старший и младший биты. Эти понятия строго регламентированы. В двоичной системе разряд, который имеет самую правую позицию, получил название младший значащий бит (МЗБ). В англоязычной литературе его называют Least Significant Bit (LSB). Именно с него начинается нумерация битов.

Наибольший вес имеет бит, находящийся в самой левой ячейке памяти. Его принято называть старший значащий бит (СЗБ) или Most Significant Bit – MSB.

Более емкой единицей информации является байт (byte). Он равен 8 битам, т. е. восемь элементарных ячеек памяти составляют один байт.

1 байт = 8 бит

В одном бите можно хранить только два разных значения или две комбинации. А в 1 байте можно хранить 256 различных комбинаций. Ровно столько же символов содержится в таблице кодировки ASCII. Но об этом в другой раз.

На практике пользуются большими значениями объёма памяти килобайтами, мегабайтами, гигабайтами и терабайтами.

1 килобайт (кБ) = 1024 байт

1 мегабайт (МБ) = 1024 кБ

1 гигабайт (ГБ) = 1024 МБ

1 терабайт (ТБ) = 1024 ГБ

Преобразование десятичного числа в двоичное

На практике программисты часто пользуются несколькими системами счисления. Поэтому следует научиться переводить числа из десятичной системы в двоичную. Здесь можно выделить два простых способа. Рассмотрим их по порядку.

Первый способ заключается в том, что десятичное число непрерывно делится на два. При этом учитывается полностью ли оно разделилось или с остатком. Если значение делится без остатка, как например 4/2 = ровно 2 или 6/2 = ровно 3, то записывается ноль, а если с остатком, как 3/2 или 5/2, то записывается единица.

Теперь давайте переведем число 125 в двоичную форму.

125/2 = 62 остаток 1

62/2 = 31 остаток 0

31/2 = 15 остаток 1

15/2 = 7 остаток 1

7/2 = 3 остаток 1

3/2 = 1 остаток 1

1/2 = 0 остаток 1

Получаем двоичное число 11111012

Я надеюсь здесь понятно, что если 1 разделить на 2, то математически ноль никак не получится, однако такой подход позволяет объяснить данный алгоритм.

Еще один пример.

84/2 = 42 остаток 0

42/2 = 21 остаток 0

21/2 = 10 остаток 1

10/2 = 5 остаток 0

5/2 = 2 остаток 1

2/2 = 1 остаток 0

1/2 = 0 остаток 1

Результат 10101002

Второй способ

Второй способ имеет такую идею. С изначального числа нужно вычесть число в степени два, которое будет меньше заданного значения. Для ускорения процесса преобразования воспользуемся следующей таблицей.

Давайте преобразуем 125.

Наибольшая степень числа 2 меньшая значения 125 равна 6, т.е. 26. Два в шестой степени равно 64. В 6-й бит записываем единицу. Теперь от 125 отнимаем 64 и получаем 61. Ближайшая степень двойки является 5, т. е. число 32. Следовательно, 5-й бит также находится в единице. Отнимаем от 61 значение 32 и получаем 29. 4-й бит, который соответствует числу 16, также находится в единице. 29 – 16 = 13, поэтому и 3-й бит = 1. 13 – 8 = 5. Отсюда видно, что и второй бит находится в единице. Далее от 5 отнимаем 4 и получаем единицу. Поскольку 1-й бит равен двум (21 = 2), а два менее единицы, то в него записываем ноль. Нулевой бит равен одному (20 = 1), поэтому в него заносим единицу. В итоге получаем следующее двоичное число: 11111012.

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

Преобразование двоичного числа в десятичное

Преобразование двоичного числа в десятичное выполняется довольно просто. Для этого следует сложить десятичные веса всех двоичных разрядов, в которых имеются единицы. Биты, в которых записан ноль, пропускаются. В качестве примера возьмем такое значение: 10101101. Нулевой, второй, третий, пятый и седьмой биты имеют единицы. Получаем: 20 + 22 + 23 + 25 + 27= 1 + 4 +8 + 32 + 128 = 173.

101011012 = 17310

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

Еще пример.

Шестнадцатеричная система счисления

В программировании микроконтроллеров очень часто пользуются шестнадцатеричными числами. Данная система счисления имеет основание 16, соответственно и 16 различных символов. Первые десять символов 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 заимствованы из десятеричной системы. В качестве оставшихся шести символов применяются буквы A, B, C, D, E, F.

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Высокая популярность шестнадцатеричной системы счисления поясняется тем, что при отображении одного и того же значения используется меньше разрядов по сравнению с десятичной системой и тем более с двоичной. Например, при отображении 100 используется три десятичных разряда 10010 или 7 двоичных разрядов 11001002 и только 2 шестнадцатеричных разряда 6416.

10010 = 11001002 = 6416

А если записать 1000000, то разница в количестве занимаемых разрядов буде еще более ощутима:

1 000 00010 = 1111 0100 0010 0100 00002 = F424016

Преобразование двоичного числа в шестнадцатеричное

Еще одним положительным свойством шестнадцатеричного числа является простота получение его из двоичного. Такое преобразование выполняется следующим образом: сначала двоичное число разбивается на группы по четыре быта или на полубайты, которые еще называют тетрадами. Если количество битов не кратно четырем, то их дополняют нулями. Далее следует сложить значение всех битов в каждом полубайте. Сумма каждого полубайта даст значение отдельной цифры шестнадцатеричного числа.

Другие системы счисления

В цифровой технике также применяется восьмеричная система счисления, но она не нашла применения в микроконтроллерах.

Теоретические можно получить бесконечное значение систем счисления: троичную, пятиричную и даже сторичную, т.е. с любым основанием. Однако практической необходимости в этом пока что нет.

Наиболее простой и быстрый способ преобразования чисел с одной системы счисления в другую – это применение встроенного в операционную систему калькулятора. Найти его можно следующим образом: Пуск – Все программы – Стандартные – Калькулятор.

Чтобы перейти в «нужный» режим следует кликнуть по вкладке Вид и выбрать Программист или нажать комбинацию клавиш Alt+3.

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

В дальнейшем, при написании кода программы мы часто будем обращаться к данному калькулятору. Кроме того, опытные программисты любят использовать шестнадцатеричные числа, а нам проще будет понять двоичный код, поэтому калькулятор в помощь)

Помогите проекту. Поделитесь с друзьями.

Try Objective-с

Быстрая навигация:
Когда мы с вами рассматривали системы счисления то уже вкратце коснулись вопроса хранения информации на компьютере.
В частности мы узнали, что минимальная единица информация — один байт, а вот для кодирования каждого байта используется один бит.
В одном байте — 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 ( 11112 = 1510)
Это означает, что в 4-х двоичных разрядах (битах) можно записать максимальное число 15, а числовых комбинаций (чередований нулей и единиц) можно записать 16 (от 0000 до 1111)
Полностью записанный байт (состоящий из восьми единиц — 1111 1111) — имеет значение 255 в десятичной система счисления.
Он имеет 256 числовых комбинаций (от всех нулей до всех единиц)
Таким образом в один байт можно записать максимальное число 255 (для целых беззнаковых чисел — от 0…)
Справка
Если вы знакомы с графическими программами и, в частности, с настройками цветов, то вы наверняка обращали внимание на варианты записи цвета.
Например цвета палитры R, G, B (красный, зеленый, синий) — имеют диапазон значений от 0 до 255
Это как раз и есть двоичная запись.
В шестнадцатеричной системе счисления «полбайта» имеют запись в виде «F».
Соответственно «FF» — это целый байт имеющий значение 255 в десятичной системе счисления — FF16 = 25510
Шестнадцатеричная система счисления более компактная, нежели двоичная и более легко читаема, по этой причине она чаще применяется в программировании.
Вы ее также могли встречать для записи параметров цвета в тех же графических программах (для значений RGB)
Вопрос: сколько же байт отводится под хранение целого числа?
Чем больше байт отводится под хранение, тем большим диапазоном чисел можно пользоваться.
В 1 байте — максимум 255 — но это только для беззнаковых чисел (от 0 и выше)
2 байта — это максимум 65536
Под хранение целого числа ( тип int — от integer) отводится 4 байта — это миллиарды в значении числа
Однако может потребоваться хранение чисел со знаком — для хранения отрицательных чисел.
Как хранятся отрицательные числа?
Для хранения числа со знаком необходимо выделить один из разрядов (1 бит) для того, чтобы указать — является это число отрицательным или нет.
Для этих целей выделяется старший бит (самый левый)
0 — это показатель положительного числа
1 — показатель отрицательного числа
В этом случае мы сразу теряем в диапазоне чисел, которые мы можем хранить в одном байте.
Получается, что 1 байт выделенный для хранения знакового целого числа может содержит диапазон от -128 до +127
На первый взгляд этот диапазон не симметричный — это происходит от того, что счет ведется от 0, а не от 1
Следовательно запись в двоичном виде числа 01111 — будет соответствовать 15 в десятичной системе
В этой записи 0 — это указатель на знак числа
Таблица знаковых чисел в 4-х битах

Ячейка памяти

Как мы уже говорили, для хранения чисел в компьютере используется двоичная система.
Данные хранятся в оперативной памяти в так называемых ячейках — а ячейки эти называются адресами ячеек памяти (область памяти выделенная для хранения конкретного значения).
Сама память называется адресным пространством — место для хранения ячеек.
Нумерация ячеек производится целыми числами и ограничено максимальным диапазоном целых чисел конкретной операционной системы.
По этой причине на 32-х битных операционных системах имеется ограничение на максимальный объем оперативной памяти в виде 3,2Гб.
После этого значения просто заканчиваются адреса.
В этом адресном пространстве и хранятся данные, а именно:
1
— Целые числа — int (от integer) хранятся в виде 0 и 1
2
Дробные (вещественные) числа хранятся в виде:
— числа с фиксированной точкой (запятой) — (в России дробная часть отделяется запятой, а в США и Англии — точкой) — неизменное количество знаков после запятой (применяются в финансах, бухгалтерии и т.п.). В памяти такое число представляется как целое число до точки и целое число после точки. Можно хранить ограниченный диапазон дробных чисел.
3
— числа с плавающей точкой (запятой) (floating point) — бесконечное количество знаков после запятой ограниченное разрядностью операционной системы компьютера — используется для сложных математических расчетов где необходима очень высокая точность вычислений.
Справка
В этом формате число представляется в специальном формате, где первое число — мантисса, второе — степень.
A = m*qp
A — число с плавающей точкой
m — это мантисса (дробная часть)
q = основание системы счисления
p — это порядок числа
Для примера возьмем десятичную систему счисления.
Возьмем число 0.5, тогда формула будет иметь вид: m * 10p
0.5 можно записать в виде: 5 * 10-1
5 и -1 то же самое, что
50 и -2 или
500 и -3 и т.д.
На компьютере для числа с плавающей точкой происходит то же самое, только в двоичной системе счисления, где q = 2
Проблемы с точностью:
— средняя точность вычислений компьютера 10-16 степени (15 знаков после запятой)
Средняя граница для расчетов на компьютере — это -12 -14
Для чего это все необходимо знать?
Для того, чтобы при программировании вы четко представляли себе, с каким типом данных вы будете работать и какой тип данных указать для хранения тех или иных параметров.
Это будет сказываться на объеме памяти, который будет затребована вашей программой.
Согласитесь, что если вы пишете программу, в которой содержатся данные о возрасте человека, кол-ве детей, то вам не нужны переменные типа int — это будет слишком избыточно для такого типа информации…

Метки к статье: бит, байт

Единицы измерения объема информации

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

Бит и байт – минимальные единицы измерения информации

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

Бит – это минимальная единица измерения информации, соответствующая одной двоичной цифре («0» или «1»).

Бит – это только 0 («ноль») или только 1 («единичка»). С помощью одного бита можно записать два состояния: 0 (ноль) или 1 (один). Бит – это минимальная ячейка памяти, меньше не бывает. В этой ячейке может храниться либо нолик, либо единичка.

Байт состоит из восьми бит. Используя один байт, можно закодировать один символ из 256 возможных (256 = 28). Таким образом, один байт равен одному символу, то есть 8 битам:

1 символ = 8 битам = 1 байту.

Буква, цифра, знак препинания – это символы. Одна буква – один символ. Одна цифра – тоже один символ. Один знак препинания (либо точка, либо запятая, либо вопросительный знак и т.п.) – снова один символ. Один пробел также является одним символом.

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

Таблица байтов:

1 байт = 8 бит

1 Кб (1 Килобайт) = 210 байт = 2*2*2*2*2*2*2*2*2*2 байт =
= 1024 байт (примерно 1 тысяча байт – 103 байт)

1 Мб (1 Мегабайт) = 220 байт = 1024 килобайт (примерно 1 миллион байт – 106 байт)

1 Гб (1 Гигабайт) = 230 байт = 1024 мегабайт (примерно 1 миллиард байт – 109 байт)

1 Тб (1 Терабайт) = 240 байт = 1024 гигабайт (примерно 1012 байт). Терабайт иногда называют тонна.

1 Пб (1 Петабайт) = 250 байт = 1024 терабайт (примерно 1015 байт).

1 Эксабайт = 260 байт = 1024 петабайт (примерно 1018 байт).

1 Зеттабайт = 270 байт = 1024 эксабайт (примерно 1021 байт).

1 Йоттабайт = 280 байт = 1024 зеттабайт (примерно 1024 байт).

В приведенной выше таблице степени двойки (210, 220, 230 и т.д.) являются точными значениями килобайт, мегабайт, гигабайт. А вот степени числа 10 (точнее, 103, 106, 109 и т.п.) будут уже приблизительными значениями, округленными в сторону уменьшения. Таким образом, 210 = 1024 байта представляет точное значение килобайта, а 103 = 1000 байт является приблизительным значением килобайта.

Такое приближение (или округление) вполне допустимо и является общепринятым.

Ниже приводится таблица байтов с английскими сокращениями (в левой колонке):

1 Kb ~ 103 b = 10*10*10 b= 1000 b – килобайт

1 Mb ~ 106 b = 10*10*10*10*10*10 b = 1 000 000 b – мегабайт

1 Gb ~ 109 b – гигабайт

1 Tb ~ 1012 b – терабайт

1 Pb ~ 1015 b – петабайт

1 Eb ~ 1018 b – эксабайт

1 Zb ~ 1021 b – зеттабайт

1 Yb ~ 1024 b – йоттабайт

Выше в правой колонке приведены так называемые «десятичные приставки», которые используются не только с байтами, но и в других областях человеческой деятельности. Например, приставка «кило» в слове «килобайт» означает тысячу байт. В случае с километром она соответствует тысяче метров, а в примере с килограммом она равна тысяче грамм.

Продолжение следует…

Возникает вопрос: есть ли продолжение у таблицы байтов? В математике есть понятие бесконечности, которое обозначается как перевернутая восьмерка: ∞.

Понятно, что в таблице байтов можно и дальше добавлять нули, а точнее, степени к числу 10 таким образом: 1027, 1030, 1033 и так до бесконечности. Но зачем это надо? В принципе, пока хватает терабайт и петабайт. В будущем, возможно, уже мало будет и йоттабайта.

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

Есть удобный «терабайтник» – внешний жесткий диск, который подключается через порт USB к компьютеру. На него можно записать терабайт информации. Особенно удобно для ноутбуков (где смена жесткого диска бывает проблематична) и для резервного копирования информации. Лучше заранее делать резервные копии информации, а не после того, как все пропало.

Флешки бывают 1 Гб, 2 Гб, 4 Гб, 8 Гб, 16 Гб, 32 Гб , 64 Гб и даже 1 терабайт.

CD-диски могут вмещать 650 Мб, 700 Мб, 800 Мб и 900 Мб.

DVD-диски рассчитаны на большее количество информации: 4.7 Гб, 8.5 Гб, 9.4 Гб и 17 Гб.

Упражнения по компьютерной грамотности

описаны в статье “Байт, килобайт, мегабайт…”

Статья закончилась, но можно еще прочитать:

Кодирование текстовой информации

Проверяем, кодирует ли компьютер текст

Кодирование цветовой информации

Получайте актуальные статьи по компьютерной грамотности прямо на ваш почтовый ящик.
Уже более 3.000 подписчиков

.

Важно: необходимо подтвердить свою подписку! В своей почте откройте письмо для активации и кликните по указанной там ссылке. Если письма нет, проверьте папку Спам.

Надежда Широбокова

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *