Биты и байты таблица: Единицы измерения информации в компьютерах.: spayte — LiveJournal

Содержание

Единицы измерения информации в компьютерах.: spayte — LiveJournal

Всех нас интересует какая скорость передачи данных в сети (в Интернет тоже), скорость записи на жесткий диск или флешку. Давайте попробуем разобраться, что же такое — биты и байты. Бит — это самая  наименьшая единица измерения количества информации. Наравне с битом активно используется байт. Байт равен 8 бит.

Говоря проще, скорость подключения это количество получаемой или отправляемой вашим компьютером информации в единицу времени.

В качестве единицы времени в данном случае принято считать секунду, а  в качестве количества информации — кило или мегабит. Например, если ваша скорость 128 Kbps — это означает, что ваше соединение имеет пропускную способность 128 килобит в секунду
«>
или же 16 килобайт в секунду.


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

Бит (bit) – базовая единица измерения информации, может содержать только одну двоичную цифру. Бит может принимать только два значения: «0» или «1».

Байт (byte) – также единица количества информации, один байт равен восьми битам 

(1 Байт = 8 бит).

Приставки К, М, Г, Т («кило-», «киби-» и т. д.)

Чтобы измерять большие объемы данных, используют кратные приставки. Привычная же нам приставка «кило-» означает умножение на 1000 (10х3 ), но в двоичной системе счисления используют два в десятой степени (2х10 ).

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

Для обозначения величины 2х10 =1024 байт, ввели двоичную приставку «К» (именно прописная буква «К»), но в разговорной речи единицу «К» стали называть «кило», что не совсем одно и то же. Чтобы не путаться ввели названия приставкам:

К — «киби»,

М — «меби»,

Г — «гиби»,

Т — «теби»

Т. е. второй слог изменили с привычного на «би», «бинарный».

Но от этого легче не стало, путаница не исчезла и многие расшифровывали «К» и «М» привычными «кило» и «мега».

Да еще производители внесли свой вклад в запутывание ситуации (одни считали 2х10 ,

другие 10х3 ).

Короче в итоге, чтобы окончательно убрать несоответствие, изменили не только названия,

но и приставки:

Ки — «киби»,

Ми — «меби»,

Ги — «гиби»,

Ти — «теби»

Но как Вы понимаете от этого опять же легче не стало.

В народе говорят «кило», в программах ОС Windows пишут«К», в Linux обозначают «Ки»,

а производители жестких и оптических дисков пишут«К», а имеют в виду «Ки» и т. д.

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

Двоичные приставки в ОС Windows и производителей ОЗУ

1Кбайт (КБ или KB или Kbyte) = 1024байт

1Мбайт (МБ или MB или Mbyte) =1024Кбайт

1Гбайт (ГБ или MB или Gbyte) =1024Мбайт

1Тбайт (ТБ или TB или Tbyte) =1024Гбайт 

В свойствах файлов почти все программы, да и сама операционная система Windows использует приставку в виде прописной буквы «К», «М», «Г» и т. д.

Производители оперативной памяти используют тот же принцип.

Двоичные приставки в ОС Windows и у производителей ОЗУ 1 Кбайт (КБ или KB или

Kbyte) = 1024 байт

Эта «К» на самом деле двоичная приставка «киби» (а не «кило», как все говорят).

Использование десятичных приставок

Производители накопителей (жестких дисков (HDD), карт флэш — памяти, а также DVD и

BD — дисков) используют десятичные приставки. Эти же приставки используются при обозначении скорости передачи данных (100 Мбит/с =100 000 000 бит/с.

Если используется приставка «кило», «мега», «гига» и т. д., то имеются в виду следующие соотношения:

         Десятичный приставки используют производители накопителей

                              (флешки, жесткие диски, DVD — диски)

1 килобайт (кБ или kB или kbyte) =1000 байт

1 мегабайт (МБ или MB или Mbyte)=1000килобайт=1 000 000байт

1гигабайт (ГБ или GB или Gbyte) =1000мегабайт=1 000 000Кбайт=1 000 000 000байт

1терабайт (ТБ или TB или Tbyte) =1000гигабайт=1 000 000Мегабайт=1 000 000 000Кбайт=1 000 000 000 000байт 

Многих начинающих юзеров вводит в ступор после установки ОС, что диск обьемом 1000гб, отображается, как 931гб.

            Как Windows видит два жестких диска 1ТБ и 500ГБ

 

Производители считают, что в нем 1 000 000 000 килобайт, а ОС Windows делит на 1024 и получает 976 562 500 Кбайт (кибибайт) или 931 Гбайт (гибибайт).

Жесткий диск 500 ГБ отображается как 465.76 ГБ, а винчестер объемом 1000 ГБ

содержит всего 931.51 гигабайт, т. е.70 гигов никуда не делись, просто гигибайт на жестком диске меньше,чем гигабайт.

1КБ=1 кибибайт= 1024байт

1килобайт=1000байт 

Теперь Вы знаете сколько байт в килобайте, а сколько в кибибайте

(бит в килобите и в кибибите)

В заключение, если у Вас на флешке вместо 16GB — 14.9GB, то 1.1 ГБ »потерялся’‘ при пересчете в кибибайты.

Бит | Байт | Системы счисления ⋆ diodov.net

Программирование микроконтроллеров Курсы

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

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

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

Микропроцессор

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

  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 еще на одну единицу, т. е. имеем 10

2. Соответственно получаем три сотни. И последняя цифра, она же первая по счету, если считать слева на право, имеет наибольший вес для, т. е. 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 BitMSB.

Более емкой единицей информации является

байт (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.

Настройка режимов калькулятора

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

Калькулятор программиста

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

Как читать электрические схемы и создавать электронные устройства

Еще статьи по данной теме

Конвертировать Бит в Байт (bit → B)

1 Бит = 0.125 Байт10 Бит = 1.25 Байт2500 Бит = 312.5 Байт
2 Бит = 0.25 Байт20 Бит = 2.5 Байт5000 Бит = 625 Байт
3 Бит = 0.375 Байт30 Бит = 3.75 Байт10000 Бит = 1250 Байт
4 Бит = 0.5 Байт40 Бит = 5 Байт25000 Бит = 3125 Байт
5 Бит = 0.625 Байт50 Бит = 6.25 Байт50000 Бит = 6250 Байт
6 Бит = 0.75 Байт100 Бит = 12.5 Байт100000 Бит = 12500 Байт
7 Бит = 0.875 Байт250 Бит = 31.25 Байт250000 Бит = 31250 Байт
8 Бит = 1 Байт500 Бит = 62.5 Байт500000 Бит = 62500 Байт
9 Бит = 1.125 Байт1000 Бит = 125 Байт1000000 Бит = 125000 Байт

Что такое бит, байт килобайт, мегабайт, гигабайт, терабайт и как они связаны между собой?

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

А не сталкиваться с ними невозможно, поскольку это единицы измерения  информации, которую мы получаем  в интернете, копируем на флешки или переносим на диски. Представляя себе этот самый объем файлов, мы сможем выбирать необходимый носитель, чтобы хватило места для копируемых файлов.

В противном случае вы, просто на просто, не сможете сохранить информацию. Любой файл имеет свой определенный объем или, как еще говорят, «вес». Таким образом, байт, мегабайт, гигабайт, терабайт, петабайт и пр. определяют емкостное количество любого цифрового хранилища. У этих единиц есть родственные: мегабит, мегабайт и гигабит и многие их путают. Но, в отличие от  битов, байтов, мегабит и мегабайт применимы при изменении скорости передачи данных, т. е. интернета.

Итак, давайте разберемся, что это за единицы объема информации, что они означают и как переводятся одна в другую.

Единицы измерения  информации, история возникновения

Для чего нужны единицы измерения информации? Ведь это такое эфемерное понятие… До этого уже измеряли практически все, что можно измерить. Но вот как быть с информацией? Казалось бы, как можно измерить информацию заключенную, например, на листочке бумаги или же выраженную звуком. Однако можно. Для нее была придумана такая минимальная единица, как бит. И ввел ее в 1948 году Клод Элвуд Шеннон.

В своей статье «Математическая теория связи» он впервые ввел такое слово, как «bit», которым и обозначил наименьшую единицу количества информации. Правда слово это он позаимствовал у Джона Тьюки, который использовал это слово, как сокращенное от «binary digit». Родился Клод Шеннон в 1916 году в городе Гэйлорде штата Мичиган. С детства он увлекался техникой и математикой.

Это казалось бы рядовое событие явилось одним из тех кирпичиков,  на котором стоит фундамент того, что мы называем «информационные технологии». С появлением единиц измерения информации, человечество постепенно осознало, что все знания на  земле можно перевести в цифровые значения; в этом же виде информацию можно передать на расстояние хранить и обрабатывать.

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

Наравне с битом, существует и еще одна единица количества информации – байт.

Что такое бит и байт?

Что же такое эти самые бит и бай?. Как говорилось ранее, бит – это сокращенное слово от «binary digit», что означает двоичное или бинарное число. Таким образом бит воспринимает два числа – 0 или 1.

Но восемь бит представляют собой уже символ и называется это – байт. Таких последовательностей, состоящих из восьми бит 256. Этого вполне достаточно, что бы представить любой символ.

Таким образом, каждый символ равен восьми битам или одному байту. Термин «байт» был введен гораздо позже термина «бит». В 1964 году его ввел Вернер Бухгольц, который работал в IBM.

Название этого термина произошло от названия BInary digiT Eight, что означает двоичное число восемь. Что бы не путать новое название с уже имеющимся BIT (BInary digiT), буква I была заменена на букву Y. В результате и появилось новое название BYTE (байт).

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

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

Способы перевода битов в байты

Самой маленькой единицей именно хранения информации, считается мегабайт, которое обозначается, как МБ. Например, одна песня занимает в среднем от 3 до 5 Мб. Популярные некогда CD-диски были объемом в 650 Мб. Впрочем, и самая «весомая» флешка была в 250 Мб. Сейчас эти объемы уже никого не устроят. В переводе мер, 1 мегабайт равен 1024 Килобайтам.

Сейчас оптимальной единицей хранения информации считается гигабайт – Гб. Посмотрите на свои накопители информации, они все измеряются в гигабайтах. Пришедший на смену CD-диску DVD-диск имеет объем уже в 4,7 ГБ. Жесткие диски компьютеров измеряются уже минимум в 500 Гб.

Но развитие технических характеристик носителей не стоит на месте и сейчас уже в ходу новые объемы, такие как «терабайты». При покупке нового компьютера жесткий диск в ГБ нас уже не устраивает, подавай в ТБ. На сегодня, практически вся информация, которая «гуляет» по сети интернет уже измеряется в терабайтах. Все эти единицы легко переводятся друг в друга.

Но и это еще не предел. Существуют такие единицы, как Петабайты Пб. В одном петабайте находится уже 1024 Тб, в одном Тб – 1024 ГБ, в одном Гб – 1024 Мб, в одном Мб – 1024 Кб. Можно подсчитать, сколько таких Кб будет содержаться в одном Пб.

Например, в стандартный лист А4 формата содержится около 100 килобайт печатного текста. В одном же Пб содержится уже пятьсот миллиардов страниц такого текста. И еще одна, самая большая единица хранения информации – Эксабайт Эб. В одном Эб содержится уже 1024 петабайтов. Это достаточно огромное хранилище, которое пока вряд ли необходимо рядовому пользователю.

Например, в 1 ЭБ можно «уместить» одиннадцать миллионов видео в стандарте высокого разрешения. Кто-то может облизнется от такого объема. Но, не отчаивайтесь, не далеко то время, когда наши компьютеры будут снабжены такими жесткими дисками.

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

  • Чтобы узнать, сколько бит в байте, количество бит надо разделить на 8.
  • Если полученное число байт разделить на 1024, узнаем количество байтов в килобайте.
  • Если число килобайтов поделить на 1024 узнаем сколько мегабайт.
  • Что бы узнать сколько у нас гигабайт, надо количество мегабайт разделить на 1024.
  • Для получения обратного результата, необходимо имеющееся значение, наоборот, умножить на 1024.

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

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

Автор публикации

0 Комментарии: 1Публикации: 179Регистрация: 02-12-2017

1.13 Как хранится и записывается информация. Биты и байты » Try Objective-c

Быстрая навигация:
1.31 Списки — массивы. Первое знакомство.1.30 Функции которые возвращают результат — return1.29 Подпрограммы: функции и процедуры в Питоне1.28 Преобразование типов данных — int()1.27 Ввод данных с клавиатуры — input()1.26 Типы и размеры данных1.25 Цикл с предусловием — while. Числа Фибоначчи1.24 Измерение длины строки, списки1.23 Срезы строк — вывод определенного количества символов из имеющегося текста1.22 Строки и управляющие символы1.21 Системные ошибки в процессе отладки программы1.20 Оператор ветвления — if, комментарии1.19 Вывод на печать — print(), быстрый ввод данных, округление, комментарии1.18 Типы программирования. Часть 2. Объектно-ориентированное программирование1.17 Типы программирования. Часть 1. Структурное программирование. Циклы1.16 Представление символьной информации — ASCII1.15 Деление двоичных чисел1.14 Математические операции с двоичными числами1.13 Как хранится и записывается информация. Биты и байты1.12 Перевод целых чисел десятичной системы счисления в другую систему1.11 Перевод целых чисел из шестнадцатеричной системы счисления в десятичную1.10 Перевод целого двоичного числа в шестнадцатеричное1.9 Перевод целого двоичного числа в другую систему счисления1.8 Системы счисления1.7 Булевая алгебра. Логические выражения1.6 Базовые понятия. Часть 3 — Числа, выражения, операнды, знаки операций1.5 Базовые понятия. Часть 2 — Программа, данные1.4 Базовые понятия. Часть 1 — Задача и алгоритм1.3 Среда разработки СИ1.2 История языков программирования1.1 Введение

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

В одном байте — 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-х битах
4 2 1
Знак +/- 22 21 20 значение числа со знаком10
0 0 0 0 +0
0 0 0 1 +1
0 0 1 0 +2
0 0 1 1 +3
0 1 0 0 +4
0 1 0 1 +5
0 1 1 0 +6
0 1 1 1 +7
 
1 0 0 0 -8
1 0 0 1 -7
1 0 1 0 -6
1 0 1 1 -5
1 1 0 0 -4
1 1 0 1 -3
1 1 1 0 -2
1 1 1 1 -1
Ячейка памяти

Как мы уже говорили, для хранения чисел в компьютере используется двоичная система.
Данные хранятся в оперативной памяти в так называемых ячейках — а ячейки эти называются адресами ячеек памяти (область памяти выделенная для хранения конкретного значения).
Сама память называется адресным пространством — место для хранения ячеек.

Нумерация ячеек производится целыми числами и ограничено максимальным диапазоном целых чисел конкретной операционной системы.
По этой причине на 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 — это будет слишком избыточно для такого типа информации…

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

Разбираемся с прямым и обратным порядком байтов / Хабр

Перевод статьи Халида Азада — Understanding Big and Little Endian Byte Order

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

  • Проблема: Компьютеры, как и люди, говорят на разных языках. Одни записывают данные “слева направо” другие “справа налево”. При этом каждое устройство отлично считывает собственные данные — проблемы начинаются, когда один компьютер сохраняет данные, а другой пытается эти данные считать.
  • Решение: Принять некий общий формат (например, весь сетевой трафик передается в едином формате). Или всегда добавлять заголовок, описывающий формат хранения данных. Если считанный заголовок имеет обратный порядок, значит данные сохранены в другом формате и должны быть переконвертированы.


Числа и данные

Наиболее важная концепция заключается в понимании разницы между числами и данными, которые эти числа представляют. Число — это абстрактное понятия, как исчислитель чего-то. У Вас есть десять пальцев. Понятие “десять” не меняется, в зависимости от использованного представления: десять, 10, diez (испанский), ju (японский), 1010 (бинарное представление), Х (римские числа)… Все эти представления указывают на понятие “десяти”.

Сравним это с данными. Данные — это физическое понятие, просто последовательность битов и байтов, хранящихся на компьютере. Данные не имеют неотъемлемого значения и должны быть интерпретированы тем, кто их считывает.

Данные — это как человеческое письмо, просто набор отметок на бумаге. Этим отметкам не присуще какое-либо значение. Если мы видим линию и круг (например, |O), то можно интерпретировать это как “десять”. Но это лишь предположение, что считанные символы представляют число. Это могут быть буквы “IO” — название спутника Юпитера. Или, возможно, имя греческой богини. Или аббревиатура для ввода/вывода. Или чьи-то инициалы. Или число 2 в бинарном представлении (“10”). Этот список предположений можно продолжить. Дело в том, что один фрагмент данных (|O) может быть интерпретировано по разному, и смысл остается не ясен, пока кто-то не уточнит намерения автора.

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

Почему так происходит? Ну, вообще-то нет такого правила, что компьютеры должны использовать один и тот же язык, так же, как нет такого правила и для людей. Каждый компьютер одного типа имеет внутреннюю совместимость (он может считывать свои собственные данные), но нет никакой гарантии, как именно интерпретирует эти данные компьютер другого типа.

Основные концепции:

  • Данные (биты и байты или отметки на бумаге) сами по себе не имеют смысла. Они должны быть интерпретированы в какое-то абстрактное понятие, например, число.
  • Как и люди, компьютеры имеют различные способы хранения одного и того же абстрактного понятия (например, мы можем различными способами сказать “10”).

Храним числа как данные

К счастью, большинство компьютеров хранят данные всего в нескольких форматах (хотя так было не всегда). Это дает нам общую отправную точку, что делает жизнь немного проще:
  • Бит имеет два состояния (включен или выключен, 1 или 0).
  • Байт — это последовательность из 8 бит. Крайний левый бит в байте является старшим. То есть двоичная последовательность 00001001 является десятичным числом девять. 00001001 = (2^3 + 2^0 = 8 + 1 = 9).
  • Биты нумеруются справа налево. Бит 0 является крайним правым и он наименьший. Бит 7 является крайним левым и он наибольший.

Мы можем использовать эти соглашения в качестве строительного блока для обмена данными. Если мы сохраняем и читаем данные по одному байту за раз, то этот подход будет работать на любом компьютере. Концепция байта одинаковая на всех машинах, понятие “байт 0” одинакова на всех машинах. Компьютеры также отлично понимают порядок, в котором Вы посылаете им байты — они понимают какой байт был прислан первым, вторым, третьим и т. д. “Байт 35” будет одним и тем же на всех машинах.

Так в чем же проблема — компьютеры отлично ладят с одиночными байтами, правда? Ну, все превосходно для однобайтных данных, таких как ASCII-символы. Однако, много данных используют для хранения несколько байтов, например, целые числа или числа с плавающей точкой. И нет никакого соглашения о том, в каком порядке должны хранится эти последовательности.

Пример с байтом

Рассмотрим последовательность из 4 байт. Назовем их W X Y и Z. Я избегаю наименований A B C D, потому что это шестнадцатеричные числа, что может немного запутывать. Итак, каждый байт имеет значение и состоит из 8 бит.
Имя байта            W         X          Y          Z
Позиция              0         1          2          3
Значение (hex)      0x12      0x34       0x56       0x78

Например, W — это один байт со значением 0х12 в шестнадцатеричном виде или 00010010 в бинарном. Если W будет интерпретироваться как число, то это будет “18” в десятеричной системе (между прочим, ничто не указывает на то, что мы должны интерпретировать этот байт как число — это может быть ASCII-символ или что-то совсем иное). Вы все еще со мной? Мы имеем 4 байта, W X Y и Z, каждый с различным значением.
Понимаем указатели

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

В языке С, когда вы кастите (приводите) указатель к конкретному типу (такому как char * или int *), это говорит компьютеру, как именно интерпретировать данные по этому адресу. Например, давайте объявим:

void *p = 0;   // p указатель на неизвестный тип данных
	           // p нулевой указатель - не разыменовывать
char *c;       // c указатель на один байт

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

Теперь предположим, что мы напишем:

c = (char *)p;

Этот оператор говорит компьютеру, что р указывает на то же место, и данные по этому адресу нужно интерпретировать как один символ (1 байт). В этом случае, с будет указывать на память по адресу 0, или на байт W. Если мы выведем с, то получим значение, хранящееся в W, которое равно шестнадцатеричному 0x12 (помните, что W — это полный байт). Этот пример не зависит от типа компьютера — опять же, все компьютеры одинаково хорошо понимают, что же такое один байт (в прошлом это было не всегда так).

Этот пример полезен, он одинаково работает на все компьютерах — если у нас есть указатель на байт (char *, один байт), мы можем проходить по памяти, считывая по одному байту за раз. Мы можем обратиться к любому месту в памяти, и порядок хранения байт не будет иметь никакого значения — любой компьютер вернет нам одинаковую информацию.

Так в чем же проблема?

Проблемы начинаются, когда компьютер пытается считать несколько байт. Многие типы данных состоят больше чем из одного байта, например, длинные целые (long integers) или числа с плавающей точкой. Байт имеет только 256 значений и может хранить числа от 0 до 255.

Теперь начинаются проблемы — если Вы читаете многобайтные данные, то где находится старший байт?

  • Машины с порядком хранения от старшего к младшему (прямой порядок) хранят старший байт первым. Если посмотреть на набор байтов, то первый байт (младший адрес) считается старшим.
  • Машины с порядком хранения от младшего к старшему (обратный порядок) хранят младший байт первым. Если посмотреть на набор байт, то первый байт будет наименьшим.

Такое именование имеет смысл, правда? Тип хранения от старшего к младшему подразумевает, что запись начинается со старшего и заканчивается младшим (Между прочим, английский вариант названий от старшего к младшего (Big-endian) и от младшего к старшему (Little-endian) взяты из книги “Путешествия Гулливера”, где лилипуты спорили о том, следует ли разбивать яйцо на маленьком конце (little-end) или на большом (big-end)). Иногда дебаты компьютеров такие же осмысленные 🙂

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

Теперь предположим, что у нас есть 4 байта (WXYZ), которые хранятся одинаково на машинах с обоими типами порядка записи байтов. То есть, ячейка памяти 0 соответствует W, ячейка 1 соответствует X и т. д.

Мы можем создать такое соглашение, помня, что понятие “байт” является машинно-независимым. Мы можем обойти память по одному байту за раз и установить необходимые значения. Это будет работать на любой машине.

c = 0;     // указывает на позицию 0 (не будет работать на реальной машине!)
*c = 0x12; // устанавливаем значение W
c = 1;     // указывает на позицию 1
*c = 0x34; // устанавливаем значение X
...        // то же повторяем для Y и Z

Такой код будет работать на любой машине и успешно установит значение байт W, X, Y и Z расположенных на соответствующих позициях 0, 1, 2 и 3.
Интерпретация данных

Теперь давайте рассмотрим пример с многобайтными данными (наконец-то!). Короткая сводка: “short int” это 2-х байтовое число (16 бит), которое может иметь значение от 0 до 65535 (если оно беззнаковое). Давайте используем его в примере.
short *s; // указатель на short int (2 байта)
s = 0;    // указатель на позицию 0; *s это значение

Итак, s это указатель на short int, и сейчас он указывает на позицию 0 (в которой хранится W). Что произойдет, когда мы считаем значение по указателю s?
  • Машина с прямым порядком хранения: Я думаю, short int состоит из двух байт, а значит я считаю их. Позиция s это адрес 0 (W или 0х12), а позиция s + 1 это адрес 1 (X или 0х34). Поскольку первый байт является старшим, то число должно быть следующим 256 * байт 0 + байт 1 или 256 * W + X, или же 0х1234. Я умножаю первый байт на 256 (2^8) потому что его нужно сдвинуть на 8 бит.
  • Машина с обратным порядком хранения: Я не знаю что курит мистер “От старшего к младшему”. Я соглашусь, что short int состоит из 2 байт и я считаю их точно также: позиция s со значение 0х12 и позиция s + 1 со значением 0х34. Но в моем мире первым является младший байт! И число должно быть байт 0 + 256 * байт 1 или 256 * X + W, или 0х3412.

Обратите внимание, что обе машины начинали с позиции s и читали память последовательно. Не никакой путаницы в том, что значит позиция 0 и позиция 1. Как и нет никакой путаницы в том, что являет собой тип short int.

Теперь Вы видите проблему? Машина с порядком хранения от старшего к младшему считает, что s = 0x1234, в то время как машина с порядком хранения от младшего к старшему думает, что s = 0x3412. Абсолютно одинаковые данные дают в результате два совершенно разных числа.

И еще один пример

Давайте для “веселья” рассмотрим еще один пример с 4 байтовым целым:
int *i; // указатель на int (4 байты 32-битовой машине)
i = 0;  // указывает на позицию 0, а *i значение по этому адресу

И опять мы задаемся вопросом: какое значение хранится по адресу i?
  • Машина с прямым порядком хранения: тип int состоит из 4 байт и первый байт является старшим. Считываю 4 байта (WXYZ) из которых старший W. Полученное число: 0х12345678.
  • Машина с обратным порядком хранения: несомненно, int состоит из 4 байт, но старшим является последний. Так же считываю 4 байта (WXYZ), но W будет расположен в конце — так как он является младшим. Полученное число: 0х78563412.

Одинаковые данные, но разный результат — это не очень приятная вещь.
Проблема NUXI

Проблему с порядком байт иногда называют проблемой NUXI: слово UNIX, сохраненное на машинах с порядком хранения от старшего к младшему, будет отображаться как NUXI на машинах с порядком от младшего к старшему.

Допустим, что мы собираемся сохранить 4 байта (U, N, I, и X), как два short int: UN и IX. Каждая буква занимает целый байт, как в случае с WXYZ. Для сохранения двух значений типа short int напишем следующий код:

short *s; // указатель для установки значения переменной типа short
s = 0;    // указатель на позицию 0
*s = UN;  // устанавливаем первое значение: U * 256 + N (вымышленный код)
s = 2;    // указатель на следующую позицию
*s = IX;  // устанавливаем второе значение: I * 256 + X

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

Однако, если пройтись по памяти по одному байту за раз (используя трюк с char *), то порядок байт может различаться. На машине с прямым порядком хранения мы увидим:

Byte:     U N I X
Location: 0 1 2 3

Что имеет смысл. “U” является старшим байтом в “UN” и соответственно хранится первым. Такая же ситуация для “IX”, где “I” — это старший байт и хранится он первым.

На машине с обратным порядком хранения мы скорее всего увидим:

Byte:     N U X I
Location: 0 1 2 3

Но и это тоже имеет смысл. “N” является младшим байтом в “UN” и значит хранится он первым. Опять же, хотя байты хранятся в “обратном порядке” в памяти, машины с порядком хранения от младшего к старшему знают что это обратный порядок байт, и интерпретирует их правильно при чтении. Также, обратите внимание, что мы можем определять шестнадцатеричные числа, такие как 0x1234, на любой машине. Машина с обратным порядком хранения байтов знает, что Вы имеете в виду, когда пишите 0x1234 и не заставит Вас менять значения местами (когда шестнадцатеричное число отправляется на запись, машина понимает что к чему и меняет байты в памяти местами, скрывая это от глаз. Вот такой трюк.).

Рассмотренный нами сценарий называется проблемой “NUXI”, потому что последовательность “UNIX” интерпретируется как “NUXI” на машинах с различным порядком хранения байтов. Опять же, эта проблема возникает только при обмене данными — каждая машина имеет внутреннюю совместимость.

Обмен данными между машинами с различным порядком хранения байтов

Сейчас компьютеры соединены — прошли те времена, когда машинам приходилось беспокоиться только о чтении своих собственных данных. Машинам с различным порядком хранения байтов нужно как-то обмениваться данными и понимать друг друга. Как же они это делают?
Решение 1: Использовать общий формат

Самый простой подход состоит в согласовании с общим форматом для передачи данных по сети. Стандартным сетевым является порядок от старшего к младшему, но некоторые люди могут расстроиться, что не победил порядок от младшего к старшему, поэтому просто назовем его “сетевой порядок”.

Для конвертирования данных в соответствии с сетевым порядком хранения байтов, машины вызывают функцию hton() (host-to-network). На машинах с прямым порядком хранения эта функция не делает ничего, но мы не будем говорить здесь об этом (это может разозлить машины с обратным порядком хранения 🙂 ).

Но важно использовать функцию hton() перед отсылкой данных даже если Вы работаете на машине с порядком хранения от старшего к младшему. Ваша программа может стать весьма популярной и будет скомпилирована на различных машинах, а Вы ведь стремитесь к переносимости своего кода (разве не так?).

Точно также существует функция ntoh() (network-to-host), которая используется для чтения данных из сети. Вы должны использовать ее, чтобы быть уверенными, что правильно интерпретируете сетевые данные в формат хоста. Вы должны знать тип данных, которые принимаете, чтобы расшифровать их правильно. Функции преобразования имеют следующий вид:

htons() - "Host to Network Short"
htonl() - "Host to Network Long"
ntohs() - "Network to Host Short"
ntohl() - "Network to Host Long"

Помните, что один байт — это один байт и порядок не имеет значения.

Эти функции имеют критическое значение при выполнении низкоуровневых сетевых операций, таких как проверка контрольной суммы IP-пакетов. Если Вы не понимаете сути проблемы с порядком хранения байтов, то Ваша жизнь будет наполнена болью — поверьте мне на слово. Используйте функции преобразования и знайте, зачем они нужны.

Решение 2: Использования маркера последовательности байтов (Byte Order Mark — BOM)

Этот подход подразумевает использование некого магического числа, например 0xFEFF, перед каждым куском данных. Если Вы считали магическое число и его значение 0xFEFF, значит данные в том же формате, что и у Вашей машины и все хорошо. Если Вы считали магическое число и его значение 0xFFFE, это значит, что данные были записаны в формате, отличающемся от формата вашей машины и Вы должны будете преобразовать их.

Нужно отметить несколько пунктов. Во-первых, число не совсем магическое, как известно программисты часто используют этот термин для описания произвольно выбранных чисел (BOM может быть любой последовательностью различных байтов). Такая пометка называется маркером последовательности байтов потому что показывает в каком порядке данные были сохранены.

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

Unicode использует BOM, когда сохраняет многобайтные данные (некоторые кодировки Unicode могут иметь по 2, 3 и даже 4 байта на символ). XML позволяет избежать этой путаницы, сохраняя данные сразу в UTF-8 по умолчанию, который сохраняет информацию Unicode по одному байту за раз. Почему это так круто?

Повторяю в 56-й раз — потому что проблема порядка хранения не имеет значения для единичных байт.

Опять же, в случае использования BOM может возникнуть другие проблемы. Что, если Вы забудете добавить BOM? Будете предполагать, что данные были отправлены в том же формате, что и Ваши? Прочитаете данные и, увидев что они “перевернуты” (что бы это не значило), попытаетесь преобразовать их? Что, если правильные данные случайно будут содержать неправильный BOM? Эти ситуации не очень приятные.

Почему вообще существует эта проблема? Нельзя ли просто договориться?

Ох, какой же это философский вопрос. Каждый порядок хранения байтов имеет свои преимущества. Машины с порядком следования от младшего к старшему позволяют читать младший байт первым, не считывая при этом остальные. Таким образом можно легко проверить является число нечетным или четным (последний бит 0), что очень здорово, если Вам необходима такая проверка. Машины с порядком от старшего к младшему хранят данные в памяти в привычном для человека виде (слева направо), что упрощает низкоуровневую отладку.

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

Иногда системы развиваются независимо, а в последствии нуждаются во взаимодействии.

Эпилог: Мысли на прощание

Вопросы с порядком хранения байтов являются примером общей проблемы кодирования — данные должны представлять собой абстрактные понятия, и позднее это понятие должно быть создано из данных. Эта тема заслуживает отдельной статьи (или серии статей), но Вы должны иметь лучшее понимание проблемы, связанной с порядком хранения байтов.

Конвертировать Байт в Бит (B → bit)

1 Байт = 8 Бит10 Байт = 80 Бит2500 Байт = 20000 Бит
2 Байт = 16 Бит20 Байт = 160 Бит5000 Байт = 40000 Бит
3 Байт = 24 Бит30 Байт = 240 Бит10000 Байт = 80000 Бит
4 Байт = 32 Бит40 Байт = 320 Бит25000 Байт = 200000 Бит
5 Байт = 40 Бит50 Байт = 400 Бит50000 Байт = 400000 Бит
6 Байт = 48 Бит100 Байт = 800 Бит100000 Байт = 800000 Бит
7 Байт = 56 Бит250 Байт = 2000 Бит250000 Байт = 2000000 Бит
8 Байт = 64 Бит500 Байт = 4000 Бит500000 Байт = 4000000 Бит
9 Байт = 72 Бит1000 Байт = 8000 Бит1000000 Байт = 8000000 Бит

Биты и байты мощности двух справочной таблицы для блоков данных

2 70 2,417,851,639,229,258,349,412,352
B бит бит кб
килобит
Мб
мегабит
ГБ
гигабит
000 бит Байт КБ
Килобайт
МБ
Мега —
байт
ГБ
Гигабайт —
байт
ТБ
Тера —
байт
PB EB 2 73 9.444.732.965.739.290.427.392 9.223.372.036.854.775.808 9.007.199.254.740.992 8.796.093.022.208 2 70 2 73 1.180.591.620.717.411.303.424 1.152.921.504.606.846.976 1.125.899.906.842.624 1.099.511.627.776 1.073.741, 82 4 1,048,576 1,024 1
2 71 74 18,889,465,931,478,580,854,784 18,446,744,073,709,551,616 18,014,39861,19,481 9,551,616 18,014,39861,19,481 9,551,616 18,014,39861,19,481 9,481,984 2.361.183.241.434.822.606.848 2.305.843.009.213.693.952 2.251.799.813.685.248 2.199.023.255.552 2.147.483.648 2.097.152 2.048 2
2 72 2 75 37.778.931.862.957.161.709.568 36.893.488.147.419.103.232 36.028.797.018.963.968 35.184.372.088.832 2 72 2 75 4,722,366,482,869,645,213,696 4,611,686,018,427,387,904 4,503,599,627,370,496 4,398,046,511,104 4,294,967,296 4,194,304 4,096 4
2 73 2 76 75,557,863,725,914,323,419,136 73,863,725,914,323,419,136 73,863,725,914,323,419,136 73,863,725,914,323,419,136 73,786,976,294 9.444.732.965.739.290.427.392 9.223.372.036.854.775.808 9.007.199.254.740.992 8.796.093.022.208 8.589.934.592 8.388.608 8.192 8
2 74 2 77 151.115.727.451.828.646.838.272 147.573.952.589.676.412.928 144.115.188.075.855.872 140,737,488,355,328 2 74 2 77 18,889,465,931,478,580,854,784 18,446,744,073,709,551,6 16 18.014.398.509.481.984 17.592.186.044.416 17.179.869.184 16.777.216 16.384 16
2 75 2 78 302.231.454.903.657.293.676.544 295.147.905.179.352.825.856 288.230.376.151.711.744 281.474.976.710.656 2 75 2 78 37.778.931.862.957.161.709.568 36.893.488.147.419.103.232 36.028.797.018.963.968 35.184.372.088.832 34.359.738.368 33.554.432 32.768 32
2 76 2 79 604.462.909.807.314.587.353.088 590,295,810,358,705,651,712 576,460,752,303,423,488 562,949,953,421,312 2 76 2 79 75.557.863.725.914.323.419.136 73.786.976.294.838.206.464 72.057.594.037.927.936 70.368.744.177.664 68.719.476.736 67.108.864 65.536 64
2 77 2 80 1.208.925.819.614.629.174.706.176 1.180.591.620.717.411.303.424 1.152.921.504.606.846.976 1.125.899.906.842.624 2 77 2 80 151,115,727,451,828,646,838,272 144,115,188,075,855,872 140,737,488,355,328 137,438,953,258 2,361,183,241,434,822,606,848 2,305,843,009,213,693,952 2,251 , 799813685248 2 78 2 81 302,231,454,903,657,293,676,544 295,147,905,179,352,825,856 288,230,376,151,711,744 281,474,976,710,656 274877906944 268435456 262144 256
2 79 2 82 4.835.703.278.458.516.698.824.704 4.722.366.482.869.645.213.696 4.611.686.018.427.387.904 4.503.599.627.370.496 2 79 2 82 604.462.909.807.314.587.353.088 590.295.810.358.705.651.712 576.460.752.303.423.488 562.949.953.421.312 549.755.813.888 536.870.912 524.288 512
,

байтов в биты для преобразования

Преобразование байтов в биты

Преобразует байты в биты . Введите значение байтов для преобразования в биты.

Сколько бит в байте

В байте 8 бит. 1 байт = 8 бит .

байтов

Байт — это основная единица передачи и хранения цифровой информации, широко используемая в информационных технологиях, цифровых технологиях и других смежных областях.Это одна из самых маленьких единиц памяти в компьютерных технологиях, а также одна из самых основных единиц измерения данных в программировании. Самые ранние компьютеры были сделаны с процессором, поддерживающим 1-байтовые команды, потому что в 1-м байте можно было отправить 256 команд. 1 байт состоит из 8 битов, которые образуют единое целое при хранении, обработке или передаче цифровой информации.

Байт - это единица данных
Символ единицы байта - B (верхний регистр)
1 байт = 8 бит
 

бит

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

Бит - основная единица данных
Бит имеет всего два значения: 0 или 1
Символ единицы бит - b (нижний регистр)
 

Таблица преобразования байтов в биты

байта (B) Биты (b)
1 байт 8 бит
2 байта 16 бит
3 байта 24 бита
4 байта 32 бита
5 байтов 40 бит
6 байтов 48 бит
7 байтов 56 бит
8 байтов 64 бит
9 байтов 72 бит
10 байтов 80 бит
11 байтов 88 бит
12 байтов 96 бит
13 байтов 104 бит
14 байтов 112 бит
15 байтов 120 бит
16 байтов 128 бит
17 байтов 136 бит
18 байтов 1 44 бита
19 байт 152 бит
20 байт 160 бит
21 байт 168 бит
22 байта 176 бит
23 байта 184 бит
24 байта 192 бит
25 байтов 200 бит
26 байтов 208 бит
27 байтов 216 бит
28 байтов 224 бит
29 байтов 232 бит
30 байтов 240 бит
31 байт 248 бит
32 байта 256 бит
33 байта 264 бита
34 байта 272 бита
35 байтов 280 бит
36 байтов 288 бит
37 байтов 296 бит
38 байтов 304 бит
39 байтов 312 бит
40 байтов 320 бит
41 байт 328 бит
42 байта 336 бит
43 байта 344 бит
44 байта 352 бит
45 байтов 360 бит
46 байтов 368 бит
47 байтов 376 бит
48 байтов 384 бит
49 байтов 392 бит
50 байтов 400 бит
51 байт 408 бит
52 байта 416 бит
53 байта 424 бит
54 байта 432 бит
55 байтов 440 бит
56 байтов 448 бит
57 байтов 456 бит
58 байтов 464 бит
59 байтов 472 бит
60 байтов 480 бит
61 байт 488 бит
62 байта 496 бит
63 байта 504 бита
64 байта 512 бит
байта (B) Биты (b)
64 байта 512 бит
65 байтов 520 бит
66 байтов 528 бит
67 байтов 536 бит
68 байтов 544 бит
69 байтов 552 бит
70 байтов 560 бит
71 байт 568 бит
72 байта 576 бит
73 байта 584 бит
74 байта 592 бит
75 байтов 600 бит
76 байтов 608 бит
77 байтов 616 бит
78 байтов 624 бит
79 байтов 632 бита
80 байтов 640 бит
8 1 байт 648 бит
82 байта 656 бит
83 байта 664 бит
84 байта 672 бит
85 байтов 680 бит
86 байтов 688 бит
87 байтов 696 бит
88 байтов 704 бит
89 байтов 712 бит
90 байтов 720 бит
91 байт 728 бит
92 байта 736 бит
93 байта 744 бит
94 байта 752 бит
95 байтов 760 бит
96 байтов 768 бит
97 байтов 776 бит
98 байтов 784 бит
99 байтов 792 бит
100 байтов 800 бит
101 байт 808 бит
102 байта 816 бит
103 байта 824 бита
104 байта 832 бита
105 байтов 840 бит
106 байт 848 бит
107 байт 856 бит
108 байт 864 бит
109 байтов 872 бит
110 байтов 880 бит
111 байтов 888 бит
112 байтов 896 бит
113 байт 904 бит
114 байтов 912 бит
115 байтов 9003 9 920 бит
116 байт 928 бит
117 байт 936 бит
118 байт 944 бита
119 байт 952 бит
120 байт 960 бит
121 байт 968 бит
122 байта 976 бит
123 байта 984 бит
124 байта 992 бит
125 байт 1000 бит
126 байтов 1008 бит
127 байтов 1016 бит
128 байтов 1024 бит

© 2014-2020 www.GbMb.org

,

ПАМЯТЬ КОМПЬЮТЕРА: биты и байты

КОМПЬЮТЕРЫ
Измерения для
памяти и хранения

В следующей таблице показаны префиксы / множители для BYTES
. Увеличение дано в единицах приблизительно 1000
(фактически 1024). См .: ОБЪЯСНЕНИЕ
1 бит (двоичная цифра *) = значение 0 или 1
8 бит = 1 байт
1024 байта = 1 килобайт
1024 килобайт = 1 мегабайт
1024 мегабайта = 1 гигабайт
1024 гигабайта = 1 терабайт
1024 терабайта = 1 петабайт
Сокращения
1 килобайт = 1 k
1 мегабайт = 1 МБ
1 гигабайт = 1 ГБ
1 терабайт = 1 ТБ
1 петабайт = 1 ПБ
Размер в «байтах»
Килобайт (КБ) = 1,024
Мегабайт (МБ) = 1,048,576
Гигабайт (ГБ) = 1,073,741,824
терабайт (ТБ) = 1,099,511,627,776
Петабайт (ПБ) = 1,125,899,906,842,624
ПОЯСНЕНИЯ и ПРИМЕЧАНИЯ
Десятичная система — это система счисления с основанием 10, в которой используются десять цифр. (0,1,2,3,4,5,6,7,8,9).
1000 получается следующим образом:
1 x10 = 10 x 10 = 100 x 10 = 1000 (килограмм)

Двоичная система — это система счисления с основанием 2, в которой для представления всех значений используются только два (двух) числа или цифры (0 и 1).
Единица, ближайшая к 1000, достигается следующим образом:
1 байт x 2 = 2
x 2 = 4
x 2 = 8
x 2 = 16
x 2 = 32
x 2 = 64
x 2 = 128
x 2 = 256
x 2 = 512
x 2 = 1024 байта (1 килобайт)

«Жесткий диск на 2 гигабайта» означает, что на диске содержится «2 гигабайта» (2 147 483 648 байтов).Всего один компакт-диск может вместить 650 МБ, поэтому на 2 ГБ можно поместить примерно 3 компакт-диска. Базы данных размером
терабайт становятся обычным явлением, и ходят слухи, что в Пентагоне США, вероятно, есть несколько петабайтных баз данных.

.

битов и байтов — Microsoft Style Guide

  • 2 минуты на чтение

В этой статье

В общем, при первом упоминании следует указать бит и байт термины, если только:

  • Ваша аудитория знакома с аббревиатурой.
  • Вы работаете над текстом пользовательского интерфейса.

В этих случаях или после того, как вы указали термин при первом упоминании, можно использовать сокращения для терминов -бит или -бит . Используйте сокращения только с числами в определенных измерениях, например 128 ТБ.

  • Вставьте пробел между сокращением и числом или расставьте дефис, если измерение изменяет существительное.
    Примеры
    512 гигабайт (ГБ) ОЗУ
    От 1 ГБ до максимум 2 ГБ
    23 МБ / день
    до 2 терабайт физической памяти с 8 терабайтами адресного пространства
    200 МБ доступного пространства на жестком диске
    ограничение в 650 МБ

  • В измерения, если единица измерения не сокращена, используйте единичная форма единицы измерения, когда число равно 1.использование форма множественного числа для всех остальных измерений.
    Примеры
    0 мегабайт
    0,5 мегабайт
    1 мегабайт
    15 мегабайт

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

  • Используйте запятые в числах, состоящих из четырех или более цифр, независимо от того, как числа отображаются в пользовательском интерфейсе.
    Пример
    1,024 МБ

Срок Аббревиатура Использование
бит на пиксель бит на пиксель
бит в секунду бит / с Не использовать как синоним бод. См. Сборник терминов «Единицы измерения» для получения информации о бод.
байт Нет Не сокращайте.
эксабайт EB Не используйте E, E байт, или EByte.
гигабит Нет Без сокращений.
гигабит в секунду Гбит / с Не указывайте как Гб в секунду .
гигабайт ГБ Не используйте G, G byte, или GByte .
килобит Нет Без сокращений.
килобит в секунду Кбит / с Не пишите как КБ в секунду .
килобайт КБ Не используйте Кбайт, Кбайт, или Кбайт .
килобайт в секунду Кбит / с Не пишите как КБ в секунду .
мегабит Нет Без сокращений.
мегабит в секунду Мбит / с Не указывайте как Мб / с .
мегабайт МБ Не используйте Мбайт, мегабайт, мегабайт, или мегабайт .
мегабайт в секунду Мбит / с Не пишите как МБ в секунду .
петабайт ПБ Не используйте P, P байт, или PByte .
терабайт ТБ Не используйте T, T байт, или TByte .
зеттабайт ZB Не используйте Z, Z байт, или ZByte.
,

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