Степень алфавита 128, сколько килобайт памяти потребуется для хранения 128

Обновлено: 03.07.2024

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

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

Например, чтобы представить число 203 с основанием 10, мы знаем, что должны поместить 3 в столбец 1, 0 в столбец 10 и 2 в столбец 100. Это выражено в показателях в таблице ниже.

Или, другими словами, 2 × 10 2 + 3 × 10 0 = 200 + 3 = 203. Чтобы представить то же самое в двоичном виде, у нас будет следующая таблица.

Это равно 2 7 + 2 6 + 2 3 +2 1 + 2 0 = 128 + 64 + 8 + 2 + 1 = 203.

Основы вычислений

Возможно, вам интересно, как простое число лежит в основе всех удивительных вещей, которые может делать компьютер. Верьте или нет, это так! Процессор вашего компьютера имеет сложный, но в конечном счете ограниченный набор инструкций, которые он может выполнять над такими значениями, как сложение, умножение и т. д. По сути, каждой из этих инструкций присваивается номер, так что вся программа ( добавить это к тому, умножить на то, разделить на это и так далее) может быть представлено просто потоком чисел. Например, если процессор знает, что операция 2 — это сложение, то 252 может означать «сложить 5 и 2 и где-нибудь сохранить вывод». Реальность, конечно, намного сложнее (см. главу 3, Архитектура компьютера), но, вкратце, это то, чем является компьютер.

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

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

По мере того, как вы читаете дальше, мы будем строить всю современную вычислительную среду из этого базового строительного блока; снизу вверх, если хотите!

Биты и байты

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

Если у нас есть два бита, мы можем представить четыре возможные уникальные комбинации (00 01 10 11). Если у нас есть три бита, мы можем представить 8 различных комбинаций. В общем, с помощью n бит мы можем представить 2 n уникальных комбинаций.

8 бит дают нам 2 8 = 256 уникальных представлений, более чем достаточно для наших комбинаций алфавита. Мы называем группу из 8 бит байтом . Угадайте, насколько велика переменная C char? Один байт.

ASCII

Учитывая, что байт может представлять любое из значений от 0 до 255, любой может произвольно создать сопоставление между символами и числами. Например, производитель видеокарты может решить, что 1 представляет A , поэтому, когда значение 1 отправляется на видеокарту, на экране отображается заглавная буква «A». Производитель принтера может по какой-то неясной причине решить, что 1 представляет собой строчную букву «z», а это означает, что для отображения и печати одного и того же объекта потребуются сложные преобразования.

Чтобы избежать этого, был изобретен Американский стандартный код для обмена информацией или ASCII.Это 7-битный код, то есть доступно 2 7 или 128 кодов.

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

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

Чтобы облегчить это, современные системы переходят от ASCII к Unicode , который может использовать до 4 байтов для представления символа, что дает намного больше места!

Равность

ASCII, будучи всего лишь 7-битным кодом, оставляет один свободный бит байта. Это можно использовать для реализации паритета, простой формы проверки ошибок. Рассмотрим компьютер, использующий перфокарты для ввода, где отверстие представляет 1, а отсутствие отверстия представляет 0. Любое непреднамеренное закрытие отверстия приведет к считыванию неправильного значения, что приведет к неопределенному поведению.

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

При нечетной четности, если количество единиц в 7 битах информации нечетное, устанавливается бит четности, в противном случае он не устанавливается. Даже паритет противоположен; если число единиц четное, бит четности устанавливается равным 1.

Таким образом, переключение одного бита вызовет ошибку четности, которую можно обнаружить.

XXX подробнее об исправлении ошибок

16-, 32- и 64-разрядные компьютеры

Числа не помещаются в байты; надеюсь, вашему банковскому балансу в долларах понадобится больше диапазона, чем может поместиться в один байт! Современные архитектуры представляют собой как минимум 32-разрядные компьютеры. Это означает, что они работают с 4 байтами одновременно при обработке и чтении или записи в память. Мы называем 4 байта словом ; это аналогично языку, в котором буквы (биты) составляют слова в предложении, за исключением того, что в вычислениях все слова имеют одинаковый размер! Размер переменной C int составляет 32 бита. Современные архитектуры являются 64-битными, что удваивает размер, с которым работает процессор, до 8 байт.

Килобайты, мегабайты и гигабайты

Компьютеры имеют дело с большим количеством байтов; вот что делает их такими могущественными! Нам нужен способ говорить о большом количестве байтов, и естественным способом является использование префиксов «Международной системы единиц» (СИ), которые используются в большинстве других научных областей. Так, например, килограмм означает 10 3 или 1000 единиц, так как в килограмме содержится 1000 граммов.

1000 — хорошее круглое число по основанию 10, но в двоичном формате это 1 111 101 000, что не является особенно "круглым" числом. Однако 1024 (или 2 10 ) — это круглое число — ( 10000000000 — и оказывается весьма близким к основанию 10, означающему значение «кило» (1000, а не 1024). Таким образом, 1024 байта естественным образом стали известны как килобайт . Следующая единица СИ - "мега" для 10 6, а префиксы продолжаются вверх на 10 3 (что соответствует обычной группировке трех цифр при записи больших чисел). Как это бывает, 2 20 снова близко 1048576, а не 1000000. Увеличение единиц SI с основанием 10 на степень 10 остается функционально близким к значению SI с основанием 10, хотя каждый увеличивающий коэффициент немного отличается от базового значения SI. Единицы с основанием 10 «достаточно близки» и стали широко использоваться для значений с основанием 2.

ИмяКоэффициент базы 2БайтыЗакрыть базовый коэффициент 10< /th>Основные 10 байт
1 килобайт2 10 1,02410 3 1000
1 мегабайт2 20 1 048 57610 6 1 000 000
1 гигабайт2 30 1 073 741 82410 9 1 000 000 000
1 терабайт2 40 1 099 511 627 77610 12 1 000 000 000 000
1 петабайт2 50 1 125 899 906 842 62410 15 1 000 000 000 000 000
1 эксабайт2 60 1 152 921 504 606 846 97610 18 1 000 000 000 000 000 000

Единицы СИ в сравнении с основанием 2 и основанием 10

Было бы очень полезно зафиксировать в памяти множители с основанием 2, чтобы быстро сопоставить взаимосвязь между количеством битов и "человеческими" размерами. Например, мы можем быстро подсчитать, что 32-битный компьютер может адресовать до четырех гигабайт памяти, заметив рекомбинацию 2 2 (4) + 2 30 . Аналогичным образом 64-битное значение может адресовать до 16 экзабайт (2 4 + 2 60 ); вам может быть интересно узнать, насколько велико это число. Чтобы понять, насколько велико это число, подсчитайте, сколько времени потребуется, чтобы сосчитать до 2 64, если вы увеличиваете число раз в секунду.

Кило, мега и гигабиты

Помимо путаницы, связанной с перегрузкой единиц СИ между двоичной системой и основанием 10, емкость часто указывается в виде битов, а не байтов. Обычно это происходит, когда речь идет о сетевых устройствах или устройствах хранения; вы, возможно, заметили, что ваше ADSL-соединение описывается примерно как 1500 килобит в секунду. Расчет прост; умножьте на 1000 (для килограмма), разделите на 8, чтобы получить байты, а затем на 1024, чтобы получить килобайты (таким образом, 1500 килобит/с = 183 килобайта в секунду).

Орган стандартизации SI признал это двойное использование и определил уникальные префиксы для двоичного использования. По стандарту 1024 байта — это кибибайт, сокращение от килобинарного байта (сокращенно до КиБ). Другие префиксы имеют аналогичный префикс (например, Мебибайт, МиБ). Традиция в значительной степени препятствует использованию этих терминов, но вы можете встретить их в некоторой литературе.

Конверсия

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

Самый простой способ преобразования между базовыми числами — это повторное деление . Чтобы преобразовать, многократно делите частное на основание, пока частное не станет равным нулю, отмечая остатки на каждом шаге. Затем напишите остатки в обратном порядке, начиная снизу и каждый раз добавляя справа. Пример должен иллюстрировать; поскольку мы конвертируем в двоичный формат, мы используем основание 2.

< /tr>
Частное Остаток
20310 ÷ 2 =1011
10110 ÷ 2 =501
5010 ÷ 2 =250
2510 ÷ 2 =121
1210 ÷ 2 =60
610 ÷ 2 =30
310 ÷ 2 =11
110 ÷ 2 =01

Чтение снизу и добавление справа каждый раз дает 11001011 , что, как мы видели в предыдущем примере, было 203.

Булевы операции

Джордж Буль был математиком, открывшим целую область математики под названием Булевая алгебра . Хотя он сделал свои открытия в середине 1800-х годов, его математика является основой всей компьютерной науки. Булева алгебра — обширная тема, здесь мы представляем только самый минимум, чтобы вы могли начать.

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

Фундаментальные логические операции, используемые в компьютерных науках, легко запомнить, и они перечислены ниже. Мы представляем их ниже с помощью таблиц истинности ; они просто показывают все возможные входы и выходы. Термин true просто отражает 1 в двоичном формате.

Обычно обозначается ! , а не просто инвертирует значение, поэтому 0 становится 1, а 1 становится 0

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

Килобайт или КБ

  • Килобайт КБ – около 1 000 байт
  • Как мы знаем, 1 байт - это один набранный символ
    - см. ниже, почему здесь требуется фраза "около 1 тысячи"
  • Электронное письмо без изображений весит около 2 КБ.
  • Пятистраничный документ может весить 100 КБ.
  • Текст компактный, занимает меньше байтов по сравнению с изображениями, звуком или видео.
  • напр. 23 000 байт — это примерно 23 КБ
  • .

Один килобайт (КБ) – это совокупность примерно 1000 байт. Страница обычного латинского алфавитного текста занимает для хранения около 2 килобайт (около одного байта на букву). Типичное короткое электронное письмо также занимает всего 1 или 2 килобайта. Текст является одним из наиболее естественно компактных типов данных, для хранения каждой буквы требуется около одного байта. В нелатинских алфавитах, таких как мандарин, хранилище занимает 2 или 4 байта на «букву», что все еще довольно компактно по сравнению с аудио и изображениями.

Мегабайт или МБ

  • Мегабайт (МБ) – около 1 миллиона байт.
  • около 1000 КБ
  • Скорость звука в формате MP3 составляет около 1 МБ в минуту.
  • Цифровое изображение высокого качества весит около 2–5 МБ.
  • напр. 45 400 КБ равно 45,4 МБ.

Один мегабайт равен примерно 1 миллиону байт (или примерно 1000 килобайт). Аудиофайл MP3 длительностью несколько минут или изображение размером 10 миллионов пикселей с цифровой камеры обычно занимают несколько мегабайт. Эмпирическое правило для MP3-аудио гласит, что 1 минута аудио занимает около 1 мегабайта. Аудиоданные, изображения и видеоданные обычно хранятся в «сжатой» форме, например MP3. Мы поговорим о том, как работает сжатие позже. Компакт-диск с данными хранит около 700 МБ. Звук на компакт-диске не сжат, поэтому он занимает гораздо больше места, чем MP3. Серия битов представлена ​​в виде спиральной дорожки крошечных ямок в серебряном материале диска. Представьте, что каждая ямка интерпретируется как 0, а отсутствие ямки — 1 при чтении последовательности спирали. Забавный факт: вся спираль на компакт-диске имеет длину более 5 км.

Математика — попробуй

Гигабайт или ГБ

  • Гигабайт ГБ = около миллиарда байтов
  • около 1000 МБ
  • ГБ – общепринятая единица измерения современного оборудования.
  • напр. 4000 МБ = 4 ГБ
  • Обычный компьютер может иметь:
    –4 ГБ или ОЗУ,
    –256 ГБ постоянной памяти.
  • Диск DVD имеет емкость 4,7 ГБ (один слой)
  • – Цифра – 2 ГБ на час видео (сильно варьируется).
  • Флэш-накопитель может вмещать 32 ГБ.
  • На жестком диске может быть 750 ГБ.

  • Математика — попробуйте сами
  • Сколько ГБ составляют 4 000 000 000 байт?

Терабайт или ТБ

Один терабайт (ТБ) составляет около 1000 гигабайт, или примерно 1 триллион байт. Вы можете купить жесткие диски емкостью 4 ТБ уже сегодня, поэтому мы начинаем время, когда этот термин входит в обиход. Термин «гигабайт» тоже был экзотическим, пока закон Мура не сделал его общепринятым.

Гигагерцы — скорость, а не байты

Один гигагерц – это 1 миллиард циклов в секунду (мегагерц – миллион циклов в секунду). Гигагерц — это мера скорости, грубо говоря, скорость, с которой процессор может выполнять простейшую операцию в секунду. Гигагерц точно не говорит вам, как быстро ЦП выполняет работу, но примерно коррелирует. ЦП с более высокой частотой гигагерца также, как правило, дороже в производстве, и они потребляют больше энергии (и, как следствие, выделяют больше тепла) — проблема с размещением быстрых ЦП в небольших устройствах, таких как телефоны. Компания ARM славится тем, что выпускает очень производительные чипы при минимальном энергопотреблении и нагреве. В настоящее время почти все сотовые телефоны используют процессоры ARM.

Проблемы с килобайтами, мегабайтами и гигабайтами

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

Базовый план: прежде чем добавлять показатели X и Y, преобразуйте их в одни и те же единицы измерения.

Да, подходит: 600 МБ + 2000 МБ — это 2600 МБ. 2600 МБ — это 2,6 ГБ, поэтому на 4 ГБ диск поместится без проблем. То же самое мы могли бы сказать, что на диске объемом 4 ГБ есть место для 4000 МБ.

Аудио в формате MP3 занимает около 1 МБ в минуту. 20 часов, 60 минут/час, 20 * 60 дает 1200 минут. Это около 1200 МБ, что составляет 1,2 ГБ.

800 x 600 – это 480 000 пикселей. Каждый пиксель занимает 3 байта (по одному байту для красного/зеленого/синего), поэтому 480 000 * 3 — это всего 1 440 000 байт, т. е. около 1,4 МБ, что является пространством, необходимым для изображения в ОЗУ. Вы заметите, что на диске файлы .jpg занимают гораздо меньше места; это связано с "сжатием", которое является очень эффективным методом сокращения пространства для изображений и аудиоданных - тема будущего.

Альтернативный термин: Кибибайт Мебибайт Гибибайт Тебибайт

В компьютере удобно организовывать элементы в группы по степени двойки. Например, 2·10 равно 1024, поэтому программа может сгруппировать 1024 элемента вместе, как своего рода "круглое" число элементов в компьютере. Термин «килобайт» выше относится к этой группе размером 1024 вещи. Однако люди также группируют вещи по тысячам — 1 тысяча или 1 миллион элементов.

Есть проблема со словом "мегабайт": означает ли оно 1024 * 1024 байта, то есть 2 20 , что составляет 1 048 576, или означает ровно 1 миллион, 1000 * 1000. Разница всего в 5 %, но маркетологи как правило, предпочитают интерпретацию 1 миллион, так как это заставляет их жесткие диски и т. д. вмещать немного больше. Кроме того, разница становится все больше и больше для гигабайтных и терабайтных размеров. Чтобы исправить это, термины «кибибайт», «мебибайт», «гибибайт», «тебибайт» были введены специально для обозначения единиц на основе 1024 (см. статью в Википедии о кибибайтах). Эти термины, кажется, не очень сильно прижились до сих пор. По крайней мере, помните, что такие термины, как «мегабайт», имеют небольшое пространство для маневра между значениями, основанными на 1024 и 1000. Мы никогда не будем оценивать это различие. "Около миллиона" будет нашей достаточно близкой интерпретацией слова "мегабайт".

<р>2.1 Для представления всех цифровых данных можно использовать различные абстракции, основанные на двоичных последовательностях.
2.1.2 Объясните, как двоичные последовательности используются для представления цифровых данных. [P5]
2.1.2A Конечное представление используется для моделирования бесконечной математической концепции числа.
2.1.2B Во многих языках программирования фиксированное количество битов, используемых для представления символов или целых чисел, ограничивает диапазон целочисленных значений и математических операций; это ограничение может привести к переполнению или другим ошибкам. Заявление об исключении (2.1.2B). Ограничения диапазона любого отдельного языка, компилятора или архитектуры выходят за рамки этого курса и экзамена AP.
2.1.2C Во многих языках программирования фиксированное количество битов, используемых для представления действительных чисел (в виде чисел с плавающей запятой), ограничивает диапазон значений с плавающей запятой и математических операций; это ограничение может привести к ошибкам округления.
2.1.2D Интерпретация двоичной последовательности зависит от того, как она используется.
2.1.2E Последовательность битов может представлять инструкции или данные.
2.1.2F Последовательность битов может представлять разные типы данных в разных контекстах.
6.2.2K Задержка системы — это время, прошедшее между передачей и получением запроса.
6.2.2J Пропускная способность системы – это мера скорости передачи данных — объема данных (измеряемого в битах), который может быть отправлен за фиксированный промежуток времени.

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

Компьютеры хранят информацию в двоичном формате, используя биты и байты. Бит - это "0" или "1". Байт — это восемь битов, сгруппированных вместе, например 10001001.

В байтах 8 разрядов, поэтому крайний левый разряд равен 2 7 (или 128). Практика того, что вы узнали: что такое 100010012 в системе счисления с основанием 10?

  • бит — единица данных, которая может иметь только одно из двух значений (например, 1 или 0).
  • битрейт — количество данных (измеряемое в битах), которые можно отправить за определенное время.
  • пропускная способность – пропускная способность системы (измеряется скоростью передачи данных).
  • задержка — время между отправкой и получением сообщения

По мере того, как компьютеры становятся все более мощными, они способны обрабатывать больше информации. Раньше мы измеряли память компьютера в килобайтах; один килобайт равен 2 10 (1024) байтам, что составляет около 10 3 , поэтому мы называем его «кило». В наши дни память вашего компьютера, скорее всего, измеряется в мегабайтах. Один мегабайт равен 2 20 (около 1 миллиона) байт.

Место на жестком диске, скорее всего, измеряется гигабайтами, терабайтами или даже петабайтами. Один гигабайт равен 2 30 (около 1 миллиарда) байтов, один терабайт равен 2 40 (около 1 триллиона) байтов, а один петабайт равен 2 50 (около 1 квадриллиона) байт.

< /tr>
мера количество пример
бит либо 1, либо 0 1
байт 8 бит 11011001
килобайт 2 10 (1024) байт пара абзацев
мегабайт 2 20 (1 048 576) байт около 1 книги
гигабайт 2 30 (1,073,741,824) байт чуть больше 1 CD
терабайт 2 40 (1 099 511 627 776) байт около 1500 компакт-дисков
петабайт 2 50 (1 125 899 906 842 624) байт около 20 миллионов шкафов с текстом

Сохранение целых чисел

В зависимости от используемого языка программирования целое число может храниться с двумя или, возможно, четырьмя байтами данных, что позволяет использовать диапазон от -32 768 до 32 767 (с двумя байтами) или от -2 147 483 648 до 2 147 483 647 (с четырьмя байтами).< /p>

Почему это диапазоны целых чисел?

Два байта — это 16 бит, поэтому два байта могут представлять 2·16 = 65 536 различных значений. Примерно половину из них мы используем для представления отрицательных чисел, примерно половину — для положительных чисел и один — для представления нуля.

Четыре байта — это 32 бита, поэтому четыре байта могут представлять 2 32 = 4 294 967 296 различных значений. Опять же, мы используем примерно половину для отрицательных чисел, половину для положительных и одну для нуля.

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

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

Факториал положительного целого числа n (обозначается как "n!") — это произведение всех целых чисел от 1 до n. Например:
5! = 1 \times 2 \times 3 \times 4 \times 5 = 120 Загрузите этот проект и попробуйте следующие входные данные:

Что происходит? Хотя 200! очень большой, он не бесконечен. Этот отчет является результатом ограничения размера. Если результат вычисления превышает диапазон чисел, которые можно сохранить, компьютер возвращает специальный код или ошибку переполнения.

(0) / (0) сообщает NaN

В Snap! есть специальные коды для бесконечности, –infinity (меньше любого конечного значения) и «Not a Number», которое является уведомлением, используемым для незаконных вычислений, таких как \frac00 .

Сохранение текста

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

В языках программирования обычно используется определенное количество битов для представления символов Юникода или целых чисел. Юникод — это система, которая позволяет компьютерам хранить буквы как целые числа. Например, заглавная буква А — это номер 65 в Юникоде, который равен 010000012.

Плавающая точка

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

То, что e+32 — это просто другой способ написания научных обозначений. "e+" означает "умножить на десять в степени", поэтому: 2,6525285981219103\text+32 = 2,6525285981219103\times10^ =265 252 859 812 191 030 000 000 000 000 000 .

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

Большинство вещественных чисел не могут быть точно представлены даже с плавающей запятой.

Десятичное представление \frac13 равно 0,33333. В нем бесконечно много цифр, поэтому самое близкое к нему число с плавающей запятой не равно точно \frac13 ; через некоторое время он обрывается.

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

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

Компьютерная арифметика над целыми числами проста. Либо вы получаете точно правильный целочисленный результат, либо, если результат не соответствует целочисленному представлению, вы получаете ошибку переполнения, и результат, как правило, преобразуется в представление с плавающей запятой (например, 30! было ).

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

Как язык программирования узнает, следует ли интерпретировать битовую последовательность как целое число, число с плавающей запятой, текстовую строку символов Unicode, инструкцию или что-то еще? Языки программирования различаются тем, как они это делают, но всегда есть некоторая дополнительная последовательность битов, которая кодирует тип данных любой последовательности битов, которая сообщает компьютеру, как ее интерпретировать.< /p>

  • Логическое значение – это один бит, 0 – ложь и 1 – истина.
  • Текстовая строка представляет собой последовательность кодов символов Unicode, каждый из которых хранится как отдельное целое число.
  • Списки и блоки также являются двоичными последовательностями.

  1. Какая самая правая цифра в двоичном представлении 15551212?
  2. Какой самый правый бит ("двоичная цифра") 123456789?
  3. Разработайте правило для нахождения самого правого бита любого числа с основанием 10.
  4. Означает ли это, что 1 байт может содержать только один символ? Например:

    и если у tiny int есть диапазон от 0 до 255, означает ли это, что его можно хранить с 255 символами?

    что хранится

    какой будет диапазон 0-10

    Байт — это наименьшая единица данных в системе. Как правило, 1 байт = 1 символу ASCII. 2 байта = 1 символ UTF-16. Байт без знака может устареть от значений 0–255.

    Посылка этого вопроса совершенно неверна. Байт не определяется как 8 бит, то есть октет. Байт — это наименьший адресный размер данных в архитектуре.

    4 ответа 4

    1 байт может содержать 1 символ. Например: обратитесь к значениям Ascii для каждого символа и преобразуйте их в двоичные. Вот как это работает.

    Размер Tiny Int = 1 байт (от -128 до 127)

    Int = 4 байта (от -2147483648 до 2147483647)

    Да, 1 байт кодирует символ (включая пробелы и т. д.) из набора ASCII. Однако в единицах данных, предназначенных для кодировки символов, на практике может и часто требуется до 4 байтов. Это потому, что английский не единственный набор символов. И даже в англоязычных документах часто представлены другие языки и символы. Их очень много, и есть очень много других наборов кодировок, о которых вы, возможно, слышали, например. БИГ-5, УТФ-8, УТФ-32. Большинство компьютеров в настоящее время допускают такое использование и обеспечивают наименьшее количество искаженного текста (что обычно означает отсутствующий набор кодировок). 4 байта достаточно, чтобы покрыть эти возможные кодировки. I байт на символ не позволяет этого, и при использовании он часто превышает 4 байта на возможный символ для всех кодировок, а не только для ASCII. Окончательному символу может потребоваться только байт для работы или представления на экране, но для этого требуется, чтобы 4 байта были расположены в довольно обширной глобальной кодировке «работает».

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

    2^8 = 256 символов. Символ в двоичном формате — это последовательность из 8 (0 или 1).

    Я считаю, что существует путаница, что 1 байт может содержать 256 символов - это не может, а скорее, что 1 символ может иметь 256 опций/вариаций/символов (a,b,c или. ) - если только символ использует 1 байт. Если для этого требуется больше байтов, таких как юникод, тогда это позволит использовать больше параметров символов, что, конечно же, требует юникод. Точно так же, как 1 байт может содержать 256 «параметров», вы можете хранить любое число от 0 до 255 в 1 байте как одно число, но это не означает, что вы получите 255 различных чисел.

    Байты часто используются для хранения отдельных символов в текстовом документе. В наборе символов ASCII каждому двоичному значению от 0 до 127 соответствует определенный символ. Большинство компьютеров расширяют набор символов ASCII, чтобы использовать весь диапазон из 256 символов, доступных в байте. Верхние 128 символов используются для обработки особых вещей, таких как символы с диакритическими знаками в распространенных иностранных языках.

    Вы можете увидеть 127 стандартных кодов ASCII ниже. Компьютеры хранят текстовые документы как на диске, так и в памяти, используя эти коды. Например, если вы используете Блокнот в Windows 95/98 для создания текстового файла, содержащего слова «Четыре балла и семь лет назад», Блокнот будет использовать 1 байт памяти на каждый символ (включая 1 байт на каждый символ пробела между словами). -- символ ASCII 32). Когда Блокнот сохраняет предложение в файле на диске, этот файл также будет содержать 1 байт на символ и на пробел.

    Проведите такой эксперимент: откройте новый файл в Блокноте и вставьте в него предложение "Четыре балла и семь лет назад". Сохраните файл на диск под именем getty.txt. Затем используйте проводник и посмотрите на размер файла. Вы обнаружите, что размер файла на диске составляет 30 байт: по 1 байту на каждый символ. Если вы добавите еще одно слово в конец предложения и сохраните его повторно, размер файла увеличится до соответствующего количества байтов. Каждый символ занимает один байт.

    Если бы вы посмотрели на файл так, как на него смотрит компьютер, вы бы обнаружили, что каждый байт содержит не букву, а число — число — это код ASCII, соответствующий символу (см. ниже). Итак, на диске номера файла выглядят так:

    Посмотрев в таблицу ASCII, вы увидите однозначное соответствие между каждым символом и используемым кодом ASCII. Обратите внимание на использование 32 для пробела — 32 — это код ASCII для пробела. Мы могли бы преобразовать эти десятичные числа в двоичные числа (то есть 32 = 00100000), если бы хотели быть технически правильными — именно так компьютер действительно работает с вещами.

    Читайте также: