От бита до терабайта. Сколько бит в байте? Как перевести производные
|
Как известно, компьютер оперирует информацией, однако очевидно, что не так, как мы. Каким же образом и как измерить эту информацию? Что же такое информация ? Давайте разбираться! Для тех, кому нужно перевести биты, байты, килобайты, мегабайты, гигабайты, терабайты , я сделал удобную "считалку", которую Вы сможете скачать в конце статьи. Чтобы индивидуально указать биты, составляющие байты, используйте их поэтапно справа налево. Этот метод для указания чисел называется двоичным; в этой системе нумерации есть только два возможных значения. Наиболее знакомая числовая система - десятичное число, используемое 10 цифрами; в шестнадцатеричной системе используется 16. Существует точная причина, по которой нумерация битов начинается с правого и числа. Таким образом, фактически число, которое обозначает каждый бит, также является показателем, для которого 2 поднят, чтобы получить значение этого бита внутри байта. Например, число 3 имеет значение 8, которое является 2 высоким для третьего. Информация - это все то, что Вы могли видеть, слышать или читать. Объёмы информации постоянно растут, и с каждым днем все быстрее и быстрее, поэтому встает проблема её хранения и систематизации , чтобы потом можно было что-то легко найти. Человечество дошло от наскальных записей и пергамента до цифровых носителей информации, однако понимать устройства хранения информации становится все сложнее. Два основных действия, которые могут быть выполнены с помощью компьютера, - это управление числами и текстами. Фактически, байты могут использоваться как числа или как элементы текста. Нет ничего, что характеризует, в случае, байт или любой набор данных, как число, а не как текст. Это зависит только от того, что он использует: если пользователь работает с числами, байты получают числовую интерпретацию; если они работают над текстом, они рассматриваются как символы. Разумеется, интерпретация, которая задается байт, основана на комбинации битов, которые ее составляют, но эти комбинации не имеют привилегированной интерпретации в числовых или текстовых терминах: один и тот же байт, например, может представлять буква А или номер 65, в соответствии с его использованием. Уже не раз упоминалось то, что компьютер обрабатывает информацию с помощью устройств в системном блоке, что она передается от устройства к устройству в системном блоке с помощью кабелей. Также Вы уже знаете, что есть внешние устройства, например, устройства ввода (клавиатура и мышь, к примеру), с помощью которых мы можем отдавать команды компьютеру, а значит они тоже передают некую информацию. Для этого они подключаются к разъемам. Мы уже научились подключать некоторые устройства. Ну и, наконец, обработанная информация используется нами. Например, она возвращается к нам через устройства вывода, примером чему служит изображение на мониторе. Все мы привыкли к информации как, например, буквы в книге, наши записи в ежедневнике. Тут все просто: информация хранится в книге в виде текста, а книга на полке в библиотеке. А как Вы могли уже прочитать, информация в компьютере хранится на носителях . Вот, например, жесткий диск (про него читаем здесь) в системном блоке (он на фото) Прежде чем рассматривать вопросы интерпретации данных, давайте рассмотрим термин, на который часто ссылается слово «слово». Хотя байт по-прежнему является наиболее полезным базовым блоком и используется при управлении данными компьютером, иногда бывает необходимо работать с парами байтов, чтобы одновременно иметь 16 бит. Слово - это технический термин, используемый для обозначения пары байтов, которые рассматриваются как единое целое, или 16 бит данных, рассматриваемых как один набор. Будьте осторожны, читая этот урок, не путайте слово «слово», используемое в этом конкретном смысле, с тем же термином, принятым в его здравом смысле.
Мы можем прочитать только то, что на наклейке, да и то непонятно значение большинства надписей. Однако в этой небольшой железяке, которую можно положить в карман, могут храниться миллионы книг и документов, тысячи изображений, аудио- и видеозаписей. Каким же образом? Дело в том, что компьютер - это машина, по проводам течет ток, и компьютер не может воспринимать ту же книгу или окружающий мир как мы. Зато прекрасно может определить есть сигнал или нет, ну или же маленькое или большое напряжение соответственно. Таким образом, компьютер может воспринять информацию о наличии или отсутствии сигнала как "да" или "нет" или, в цифровом эквиваленте, 0 или 1. Таким образом мы имеем нехитрую систему из нуля и единицы, которая и называется двоичной , так как цифры всего две. Одна цифра (0 или 1) называется бит - это самая маленькая единица компьютерной информации . Её компьютер и может хранить и передавать. Однако это очень мало, как же хранить, к примеру, слова? Когда вы говорите о компьютере, который имеет 8, 16 или 32 бита, он должен указывать количество бит, которое он может объединить в одну группу. На самом деле, есть небольшое исключение из того, что было сказано сейчас, состоящее из моделей, использующих микропроцессоры 386, и эти компьютеры работают в 32-разрядном режиме в защищенном режиме и 16 в реальном режиме. Наконец, будут рассмотрены четыре важных термина, относящихся к обсуждаемому вопросу: килобайты, мегабайты, гигабайты и терабайты. Эти выражения часто используются, поскольку компьютеры используют и содержат большое количество байтов. Однако следует помнить, что они относятся к двоичным числам и поэтому соответствуют только приблизительным сокращениям, используемым в десятичной системе.
|
|
Название |
Обозначение |
Сколько было бы в десятичной системе |
В двоичной |
В байтах |
|
Байт |
2 0 Шестнадцатеричные цифры можно интерпретировать двумя различными способами. Использовать одну, а не другую интерпретацию, зависит исключительно от цели данных. Возможно, спонтанно спросить себя, почему вы никогда не используете шестнадцатеричную систему. Если ясно, что полезно использовать обозначение, которое меньше, чем двоичное, не так очевидно, почему вы решили выразить всего четыре бита только одним символом, что заставляет вас ввести шесть новых цифр, которые не являются вы привыкли использовать его как таковой. Ответ заключается в том, что шестнадцатеричная нумерация, в дополнение к удовлетворению потребностей синтеза, особенно хорошо подходит в том виде, в котором данные представлены в компьютере. Фактически, в силу этого мы можем представить значение байта точно с двумя шестнадцатеричными цифрами, каждый из которых относится к четырем битам, которые его составляют. |
1 |
||
|
Килобайт |
kB |
10 3 = 1 000 |
2 10 |
1024 |
|
Мегабайт |
MB До сих пор шестнадцатеричные цифры рассматривались индивидуально, но часто им часто приходилось обслуживать большее число. Поэтому целесообразно иметь более точное представление об этих числах и научиться выполнять с ними некоторые арифметические операции. Разница между десятичной арифметикой и шестнадцатеричным значением, естественно, равна только значению, присвоенному цифрам. Две шестнадцатеричные цифры достаточны для выражения всех возможных комбинаций битов, составляющих байт. Первые четыре бита представлены первой шестнадцатеричной цифрой, последние четыре - второй. |
10 6 = 1 000 000 |
2 20 |
1 048 576 |
|
Гигабайт |
GB |
10 9 = 1 000 000 000 |
2 30 |
1 073 741 824 Когда вы просто рассматриваете значения битов как любые данные, вы можете использовать таблицу типа 3 для преобразования последовательностей бит в шестнадцатеричные цифры и наоборот. Но чтобы иметь возможность интерпретировать числовое значение шестнадцатеричного числа, вам нужно знать, как преобразовать шестнадцатеричные числа в десятичные и наоборот, а также выполнять простые арифметические операции с шестнадцатеричными числами. Рассмотрим сначала, как оценить шестнадцатеричное число. Шестнадцатеричные числа основаны на том же принципе, поэтому в этом случае мы используем множитель из шестнадцати вместо десяти. Таким образом, если мы интерпретируем 123 как шестнадцатеричное число, оно эквивалентно 3 16 для 2 16 квадратов на 1 или десятичному числу. |
|
Терабайт |
TB |
10 12 = 1 000 000 000 000 |
2 40 |
1 099 511 627 776 |
|
Петабайт |
PB |
10 15 Выполняются различные шаги для преобразования десятичного числа в шестнадцатеричный эквивалент; в этом случае, на самом деле, оно выполняется для последующих вычитаний. Предположим, что десятичная цифра для преобразования 000: посмотрите в таблице самое большое шестнадцатеричное число, десятичный эквивалент которого не больше числа, которое мы хотим преобразовать; теперь вычесть его десятичное значение из его начального числа и следовать той же процедуре с полученным результатом; затем переходите к процессу, пока не получите больше. К счастью, вам не нужно делать десятичные и шестнадцатеричные преобразования вручную, так как есть инструменты, чтобы избежать длинных процедур, описанных выше. Во-первых, существуют некоторые резидентные программы, созданные специально для программистов, которые составляют преобразования и вычисления с шестнадцатеричными, десятичными и двоичными числами. |
2 50 |
1 125 899 906 842 624 |
Вот самые распространенные единицы измерения объёма информации. Чтобы перевести килобайты в мегабайты , надо разделить их на 1024, а чтобы перевести гигабайты в мегабайты надо их умножить на 1024. Было предложено для устранения путаницы использовать для двоичных приставок "би", но кибибайт и мебибайт звучат не очень приятно и непривычно, поэтому они пока не прижились.
Затем «Вставить», «Форма» и упакуйте следующий макрос, который будет использоваться в любой ячейке, перед которой должен стоять знак =: это общедоступная функция. Теперь у вас есть универсальный конвертер из шестнадцатеричных целочисленных чисел. Затем будет видно, как он может посредством некоторых соответствующих соглашений представлять более сложные числа.
Эти числа могут быть двух типов: один байт и двухбайтовый полный размер, одно слово ненавидят. Было замечено, что каждый байт может принимать только 256 различных значений или 2 повышенных до октавы; слово, с другой стороны, может принимать от 2 до шестнадцатого, то есть пределы, помещенные путем наличия только байтов и слов для выражения числовых значений, теперь очевидны.
Чтобы Вам было проще перевести одни единицы в другие, Вы можете воспользоваться переводчиком.
Чтобы понять, что будет представлять собой привычная нам вещь в электронном виде (в плане объема), дам примерные цифры:
- Содержимое печатного листа А4 - 100 килобайт
- 1,5 часа фильма в невысоком (для современных масштабов) качестве - 1,5 гигабайта. В высоком может быть и 40 гигабайт.
- Фото среднего качества - 1-1,5 мегабайт
- Аудиозапись среднего качества 3-5 минут - 10 мегабайт
Основной единицей хранения данных в компьютере является бит. В большинстве микрокомпьютеров восемь битов объединены в байт, при этом каждый бит байта может быть установлен или "включен" (= 1) или сброшен или "выключен" (= 0), допуская 256 разных вариантов.
Таким образом, в одном байте можно представить 256 разных символов (расширенный набор кодов ASCII) или целое число в диапазоне от 0 до 255. Хотя мы привыкли записывать эти числа в десятичной форме, они могут записываться также в двоичной или шестнадцатиричной форме - их значения при этом не изменяются, а программы могут с одинаковой легкостью читать эти значения как в той, так и в другой форме. Вместо того, чтобы говорить, что в одном байте могут храниться числа от 0 до 255, можно сказать, что могут храниться двоичные числа от 00000000 до 11111111 или шестнадцатиричные числа от 00 до FF. Поскольку можно перепутать разные формы, то двоичные и шестнадцатиричные числа отмечаются специальным образом. В языке ассемблера за двоичными числами следует буква B, а за шестнадцатиричными числами - буква H, например, 11111111B или FFH. Бейсик фирмы Microsoft предваряет шестнадцатиричные
числа символами &H, например &FFH; к сожалению, он не распознает числа в двоичной форме.
Целые числа, будь то байты или слова, могут быть интерпретированы двумя способами, дублируя число возможных числовых форматов. Эта дальнейшая интерпретация говорит о том, следует ли допускать отрицательные значения. С другой стороны, если необходимо использовать даже отрицательные числа, это заставит их вдвое уменьшить их абсолютное значение. В случае одиночных байтов значения будут находиться между -128 и 127, а слова могут быть от -768. Дополнительная информация об отрицательных числах содержится в разделе «Как отображаются отрицательные числа».
Двоичные числа:
Когда содержимое байта представляется в двоичной форме, то требуется 8 цифр. Каждая цифра соответствует одному биту, которые нумеруются от 0 до 7. Как и в десятичных числах цифры располагаются справа налево, от младших к старшим разрядам. В отличии от десятичных чисел, в которых каждая последующая цифра весит в 10 раз больше своей соседки справа, двоичные цифры имеют только вдвое больший вес. Таким образом, самая правая цифра считает, вторая - двойки, третья - четверки и т.д., до значения 128 для восьмой цифры байта. Это означает, что если первая цифра равна 1, то прибавление к ней 1 приводит к тому, что она станет 0, а 1 будет перенесена во вторую цифру, как для десятичных чисел 9 + 1 = 0 и перенос единицы в следующий разряд. Вот как числа первого десятка представляются в двоичной форме:
Следует отметить, что число отрицательных чисел больше положительного: число равно -128, но не есть. Для этого нет особых причин, это простое следствие того, как представление отрицательные числа. Он суммирует количество чисел, которые могут быть представлены в каждом из четырех размеров относительно целых чисел.
Конечно, большинство программ не могли работать только с этими четырьмя форматами. Два других типа чисел, называемые однократной и двойной точностью, генерируются с помощью устройств, которые преодолевают первоначальные ограничения машины. Это очень популярная система в компьютерах.
00000000 0
00000001 1
00000010 2
00000011 3
00000100 4
00000101 5
00000110 6
00000111 7
00001000 8
00001001 9
00001010 10
В этой последовательности большинство нулей слева необязателны, т.е. эту последовательность можно записать и в виде 0, 1, 10, 11, 100, 101 и т.д. Нули включены только для того, чтобы напомнить Вам, что байт составляется восемью цифрами, соответствующими битам. В то как набор нулей и единиц может быть несколько утомительным, Вы можете легче работать с двоичными числами, если будете представлять их себе следующим образом:
Бит 7 6 5 4 3 2 1 0
значение 128 64 32 16 8 4 2 1
Когда Вы встречаете двоичное число 10000001, то установлены биты 7 и 0. Бит 7 соответствует 128, а бит 0 - 1, поэтому десятичное значение байта равно 129. Если этот байт представляет символ, то он соответствует коду ASCII 129, который представляет букву u с умляутом (в альтернативной кодировке ГОСТа - букву Б). Наоборот, чтобы определить цепочку битов для буквы A, которая равна ASCII 65, просмотрите вышеприведенную таблицу на значения битов, которые она содержит: 64 и 1, что соответствует 01000001B. Зачем связываться с двоичными числами? Одна из причин состоит в том, что компьютер хранит информацию в статусных байтах памяти и статусных микросхем. Отдельные части этой информации распределены по одному или двум байтам. Это достигается назначением определенных битов определенным данным. Например, помимо других вещей, байт статуса может сообщить сколько принтеров и дисковых накопителей присоединено к Вашей. Скажем два старших байта содержат число принтеров, а два младших - число дисковых накопителей. Байт статуса расположен в определенной ячейке памяти и как и любой байт может иметь значения от 0 до 255. Если значение этого байта равно 66 или 01000010 в двоичной
форме, то два старших байта равны 01, а два младших байта - 10. Первая пара говорит о том, что у нас имеется один принтер, а вторая - что 2 дисковых накопителя. Группа битов, рассматриваемая совместно таким образом называется полем. Часто Вашим программам приходится читать статусные байты или регистры, а иногда Вам нужно изменить установку битов. Эти операции тривиальны в языке ассемблера, но не в Бейсике. В приложении Б объясняется как они производятся в Бейсике.
Шестнадцатиричные числа:
В то время как в двоичных числах каждая последующая цифра вдвое больше предыдущей, в шестнадцатиричных числах каждая последующая цифра больше в 16 раз. У десятичных чисел первая позиция соответствует, вторая - десяткам, третья - сотням. У двоичных чисел первая позиция соответствует единицам, вторая - двойкам, третья - четверкам. У шестнадцатиричных чисел первая позиция соответствует единицам, вторая - 16, третья - 256 и т.д. Это означает, что когда в позиции единиц расположена цифра 9, то прибавление единицы не приводит к переносу в следующий разряд, как это было бы в случае десятичных чисел. Но как записать десятичное число 10 одной цифрой? Ответ состоит в том, что шестнадцатиричные числа используют первые 6 букв латинского алфавита в дополнительных цифровых символов:
Шестнадцатиричный символ десятичный эквивалент
A 10
B 11
C 12
D 13
E 14
F 15
Перечисление шестнадцатиричных чисел продолжается так: ... 8, 9, A, B, C, D, E, F, 10, 11 ... 19, 1A, 1B и т.д. Полезность шестнадцатиричных чисел опирается на тот факт, что одна шестнадцатиричная цифра описывает содержимое ровно 1/2 байта. Например, в числе F6 F соответствует старшим четырем битам
байта, а 6 - младшим четырем битам (четыре бита взятые вместе называются ниблом, или по-русски "огрызком"). Несложно вычислить двоичный эквивалент четверки битов. FH = 1111B, а 6H = 0110B (напоминаем, что H и B - суффиксы, помогающие Вам отличить 11 двоичное от 11 десятичного и 11 шестнадцатиричного). Таким образом число F6H представляет цепочку битов 11110110. Двухбайтное число (целое) может равняться 6FF6H. В этом случае цепочка битов для него имеет вид 0110111111110110. Если число состоит только из трех цифр, то верхняя половина старшего байта равна нулю, например, числу F6FH соответствует цепочка битов 0000111101101111. Шестнадцатиричные числа намного легче читать, чем двоичные. После небольшой практики оказывается, что работать с ними намного, чем с десятичными.
Адреса памяти и портов:
Теперь, когда Вы разобрались с шестнадцатиричными числами, можно разбираться в системе, которой пользуется процессор при адресации памяти. Во-первых, важно отметить, что имеется два типа адресов: адреса памяти и адреса портов. Номера адресов используемые теми и другими совершенно не связаны; засылка значения в ячейку памяти с алресом 2000 не имеет ничего общего с засылкой значения в порт с 2000. Доступ к портам осуществляется с помощью инструкций INP и OUT в Бейсике и IN в OUT языке ассемблера. Доступ к адресам памяти осуществляется в Бейсике инструкциями PEEK и POKE, а в языке ассемблера инструкцией MOV. Имеется 65K доступных адресов портов и 1024K доступных адресов памяти. Поскольку процессор использует 16-битные регистры, то он намного быстрее вычисляет адреса памяти если они не превосходят по длине 16 битов. Однако максимальное число, которое может содержаться в 16 битах равно 65535. Мы будем представлять его как четырехзначное шестнадцатиричное число FFFFH. Требуется еще 4 добавочных бита, чтобы представить такое большое число как миллион (FFFFH), которому равен размер пространства IBM PC (AT может иметь доступ к еще большей памяти, используя виртуальную адресацию, не рассматриваемую здесь). Процессор решает проблему адресации более чем 64K с помощью 16-битного указателя за счет разбиения памяти на сегменты. Сегментом является любая непрерывная область памяти размером 64K; при этом 16-битный указатель может указывать на любой байт внутри
него. Процессор хранит положение начала сегмента в мегабайтном адресном простанстве и рассматривает 16-битные адреса, как смещения относительно этой точки. Но как определить эту точку? Ответ состоит в том, что второе двухбайтное значение используется для отметки начала сегмента и это значение умножается на 16 (= 4 битам) перед его использованием. Таким образом, если это сегментное значение равно 2, то, умножив его на 16, получим 32, и адреса будут затем вычисляться как смещение относительно 32-го байта в памяти. Если адрес в сегменте равен 7, то суммируя 32 и 7 получаем, что нам нужно обратиться к 39-му байту памяти, а не к 7-му. Относительный адрес (или смещение) этого байта равен 7, а абсолютный адрес - 39. В Бейсике Вы можете установить сегментный адрес с помощью оператора DEF SEG. Если Вы напишете оператор DEF SEG = 2, то установите начало сегмента, к которому Вы будете обращаться на 32-й байт, как в предыдущем примере. Затем Вы можете использовать операторы PEEK и POKE для чтения и записи отдельных байтов памяти. Например, PEEK(7) прочитает седьмой байт с начала сегмента, т.е. 39-й байт памяти. Во многих местах этой книги мы ссылаемся на абсолютные
памяти. Это необходимо, поскольку операционная система хранит важную информацию в определенных местах. Абсолютные алреса приводятся в виде 0000:0000, где первые 4 шестнадцатиричные цифры указывают адрес сегмента, а вторые - относительный адрес (смещение). Вспоминая предыдущий пример, мы можем адресовать 39-й байт памяти записав 0002:0007. Отметим, что тот же самый адрес может быть записан в другом виде, если изменить значение сегментного регистра, например, 0001:0017. Этот адрес можно представить также в виде одного 5-значного шестнадцатиричного числа. Например, видеобуфер начинается с B000:0000, который можно записать как B0000H. Отметим, что суффикс H опускается в специальной адресной нотации. И последнее замечание относительно использования памяти. Когда число занимает два или более байтов, то младший байт этого числа хранится в ячейке с меньшим адресом. Если целое число A48BH хранится, начиная с ячейки 1000:0007, то ячейка 0007 содержит 8B, а 0008 - A4. Подобным образом, если вещественное число хранится в памяти как F58CA98DH, то 8D будет храниться в ячейке с самым младшим, а F5 - с самым старшим.
Думаю, про биты и про байты Вы уже знаете, и про килобайты с мегабитами тоже… но всё ли Вы про них знаете? Давайте проверим, ответьте, пожалуйста, мне на вопрос:
Как Вы думаете, сколько в одном килобайте содержится байт ? Может быть 1024? Или все-таки 1000?
Правильный ответ в этом IT-уроке.
Теперь вспомним (или узнаем) про основные единицы измерения данных.
Бит (bit ) – базовая единица измерения информации, может содержать только одну двоичную цифру. Бит может принимать только два значения: «0» или «1».
Байт (byte ) – также единица количества информации, один байт равен восьми битам (1 Байт = 8 бит).
Это довольно маленькие объемы данных (можно сравнить с измерением веса в «граммах»), поэтому…
Приставки К, М, Г, Т («кило-», «киби-» и т.д.)
…чтобы измерять большие объемы данных, используют кратные приставки (это как «кило грамм»). Привычная же нам приставка «кило -» означает умножение на 1000 (10 3), но в двоичной системе счисления используют два в десятой степени (2 10).
Копирование запрещено
Всё перечисленное в этом уроке в сокращенном виде я занес в .
А мы узнаем, как измеряется скорость передачи данных и как хитрят провайдеры, рекламирующие свои «огромные» скорости подключения к Интернету.
Чтобы не пропустить новый урок, подписывайтесь на новости по вот этой ссылке (а в пришедшем письме подтвердите подписку).


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