Сколько места в памяти занимает код одного символа

Обновлено: 30.06.2024

Я немного запутался в кодировках. Насколько я знаю, старые символы ASCII занимали один байт на символ. Сколько байтов требуется для символа Unicode?

Я предполагаю, что один символ Unicode может содержать все возможные символы любого языка. Я прав? Итак, сколько байтов нужно на символ?

А что означают UTF-7, UTF-6, UTF-16 и т. д.? Это разные версии Unicode?

Я прочитал статью в Википедии о Unicode, но для меня это довольно сложно. Я с нетерпением жду простого ответа.

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

"Простой ответ": символ Юникода занимает 1-4 байта. Юникод охватывает множество языков, но не все. В прошлый раз, когда я смотрел, например, клингон не был официальным набором символов Unicode.

Клингон не является частью самого стандарта Unicode, нет. Вместо этого используется зона частного использования Uniode (U+F8D0 - U+F8FF).

Спасибо, вопрос - спасибо. Моя ситуация заключается в хранении данных через LMS, совместимые со SCORM 1.2. стандарт для SCORM 1.2 'cmi.suspend_data' составляет 4096 байт данных, что, по предположению предыдущего разработчика, означает, что мы можем хранить 4096 символов. О, чувак, он ошибался - я только что обнаружил, почему наши закладки не работают на длинных курсах. Итак, теперь я знаю, что поскольку мы используем UTF-8, для каждого символа требуется 4 байта, что дает нам 1024 символа.

12 ответов 12

Как ни странно, никто не указал, как рассчитать, сколько байт занимает один символ Unicode. Вот правило для строк в кодировке UTF-8:

Итак, быстрый ответ: он занимает от 1 до 4 байтов, в зависимости от первого, который указывает, сколько байтов он займет.

Большое спасибо! Я просто просматривал стандарт IETF и ничего не нашел о кодировании, а в статье, которую я читал, не было достаточно подробностей, чтобы сказать, сколько битов используется для представления количества завершающего кода. баллов за "символ".

Теперь это находится на второй странице моей шпаргалки "Введение для новых членов команды" вместе с первыми двумя забавными комментариями

0xF4 был не ошибкой, а уточнением. Кодовые точки Unicode находятся в диапазоне 0–0x10ffff, поэтому последняя кодовая точка кодируется как F4 8F BF BF.

@DJPJ В принципе вы правы, но UTF-8 не использует все доступное пространство для совместимости с UTF-16.

Вы не увидите простого ответа, потому что его нет.

Во-первых, Unicode не содержит "каждый символ из каждого языка", хотя и пытается это сделать.

Юникод сам по себе является отображением, он определяет кодовые точки, а кодовая точка — это число, связанное обычно с символом. Я говорю обычно, потому что есть такие понятия, как объединение символов. Возможно, вы знакомы с такими вещами, как акценты или умлауты. Их можно использовать с другим символом, таким как a или u, для создания нового логического символа. Таким образом, символ может состоять из 1 или более кодовых точек.

Чтобы быть полезными в вычислительных системах, нам нужно выбрать представление для этой информации. Это различные кодировки Unicode, такие как utf-8, utf-16le, utf-32 и т. д. Они отличаются в основном размером своих кодовых единиц. UTF-32 — самая простая кодировка, она имеет 32-битную кодовую единицу, что означает, что отдельная кодовая точка удобно вписывается в кодовую единицу. В других кодировках будут ситуации, когда для кодовой точки потребуется несколько кодовых единиц, или эта конкретная кодовая точка вообще не может быть представлена ​​в кодировке (это проблема, например, с UCS-2).

Из-за гибкости комбинирования символов даже в пределах данной кодировки количество байтов на символ может варьироваться в зависимости от символа и формы нормализации. Это протокол для работы с символами, которые имеют более одного представления (вы можете сказать «a» с акцентом, который представляет собой 2 кодовых точки, одна из которых является комбинацией символов или «a» с ударением, которая является одной кодовой точкой). ).

Компьютерная система обычно хранит символы, используя код ASCII. Каждый символ хранится с использованием восьми битов информации, что дает общее количество различных символов 256 (2**8 = 256).

Сколько символов может храниться в бите?

Сколько символов может хранить 16 бит?

В 16-битном целом числе может храниться 2 16 (или 65 536) различных значений. В беззнаковом представлении эти значения представляют собой целые числа от 0 до 65 535; с использованием дополнения до двух возможные значения находятся в диапазоне от −32 768 до 32 767.

Сколько памяти занимает персонаж?

Тип char занимает 1 байт памяти (8 бит) и позволяет выразить в двоичной записи 2^8=256 значений. Тип char может содержать как положительные, так и отрицательные значения.

Является ли символ размером 1 байт?

Поэтому каждый символ может иметь длину 8 бит (1 байт), 16 бит (2 байта), 24 бита (3 байта) или 32 бита (4 байта). Точно так же UTF-16 основан на 16-битных кодовых единицах. Следовательно, каждый символ может быть 16 бит (2 байта) или 32 бита (4 байта). Все UTF включают полный репертуар символов Unicode или набор символов.

Сколько значений может храниться в байте?

Как называется 16 бит?

BYTE — 8 бит без знака. СЛОВО – 16 бит, без знака. DWORD — 32 бита, без знака.

Что такое 16-битное число?

16-разрядный — это компьютерное аппаратное устройство или программа, способная передавать 16 бит данных за раз. Например, ранние компьютерные процессоры (например, 8088 и 80286) были 16-разрядными процессорами, то есть они могли работать с 16-разрядными двоичными числами (десятичные числа до 65 535).

Какой персонаж занимает больше всего памяти?

﷽, вероятно, занимает больше всего места.

Какой минимальный объем памяти для одного персонажа?

1 байт — это минимальное пространство, необходимое для хранения одного символа.

Много ли 1 ГБ памяти?

1 ГБ ОЗУ достаточно для основных операций, таких как просмотр веб-страниц (хотя не ожидайте запуска браузера с десятками открытых вкладок) и электронной почты, а также для обработки текстов и легкого редактирования изображений.

Сколько байтов занимает текстовый символ?

Символы могут иметь от 1 до 6 байт (некоторые из них могут быть не нужны прямо сейчас). Каждый символ UTF-32 имеет 4 байта. UTF-16 использует 16 бит для каждого символа и представляет только часть символов Unicode, называемых BMP (для всех практических целей этого достаточно). Java использует эту кодировку в своих строках.

В чем разница между байтом и символом?

Основное различие между типами данных byte и char заключается в том, что byte используется для хранения необработанных двоичных данных, а другие — для хранения символов или текстовых данных. С точки зрения диапазона, переменная byte может содержать любое значение от -128 до 127, а переменная char может содержать любое значение от 0 до 255.

Сколько байтов составляет буква?

Мы называем 8 бит байтом. В очень распространенной системе ASCII каждая буква алфавита, как заглавная, так и строчная (плюс знаки препинания и некоторые другие символы), соответствует числу от 0 до 255 (например, a=97, b=98 и т. д.), поэтому одна буква может быть выражен одним байтом. Таким образом, слово «Шеннон» занимает 7 байт.

Байты часто используются для хранения отдельных символов в текстовом документе. В наборе символов 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), если бы хотели быть технически правильными — именно так компьютер действительно работает с вещами.

Компьютерная система обычно хранит символы, используя код ASCII. Каждый символ хранится с использованием восьми битов информации, что дает общее количество различных символов 256 (2**8 = 256).

Сколько символов может храниться в бите?

Сколько символов может хранить 16 бит?

В 16-битном целом числе может храниться 2 16 (или 65 536) различных значений. В беззнаковом представлении эти значения представляют собой целые числа от 0 до 65 535; с использованием дополнения до двух возможные значения находятся в диапазоне от −32 768 до 32 767.

Сколько памяти занимает персонаж?

Тип char занимает 1 байт памяти (8 бит) и позволяет выразить в двоичной записи 2^8=256 значений. Тип char может содержать как положительные, так и отрицательные значения.

Является ли символ размером 1 байт?

Поэтому каждый символ может иметь длину 8 бит (1 байт), 16 бит (2 байта), 24 бита (3 байта) или 32 бита (4 байта). Точно так же UTF-16 основан на 16-битных кодовых единицах. Следовательно, каждый символ может быть 16 бит (2 байта) или 32 бита (4 байта). Все UTF включают полный репертуар символов Unicode или набор символов.

Сколько значений может храниться в байте?

Как называется 16 бит?

BYTE — 8 бит без знака. СЛОВО – 16 бит, без знака. DWORD — 32 бита, без знака.

Что такое 16-битное число?

16-разрядный — это компьютерное аппаратное устройство или программа, способная передавать 16 бит данных за раз. Например, ранние компьютерные процессоры (например, 8088 и 80286) были 16-разрядными процессорами, то есть они могли работать с 16-разрядными двоичными числами (десятичные числа до 65 535).

Какой персонаж занимает больше всего памяти?

﷽, вероятно, занимает больше всего места.

Какой минимальный объем памяти для одного персонажа?

1 байт — это минимальное пространство, необходимое для хранения одного символа.

Много ли 1 ГБ памяти?

1 ГБ ОЗУ достаточно для основных операций, таких как просмотр веб-страниц (хотя не ожидайте запуска браузера с десятками открытых вкладок) и электронной почты, а также для обработки текстов и легкого редактирования изображений.

Сколько байтов занимает текстовый символ?

Символы могут иметь от 1 до 6 байт (некоторые из них могут быть не нужны прямо сейчас). Каждый символ UTF-32 имеет 4 байта. UTF-16 использует 16 бит для каждого символа и представляет только часть символов Unicode, называемых BMP (для всех практических целей этого достаточно). Java использует эту кодировку в своих строках.

В чем разница между байтом и символом?

Основное различие между типами данных byte и char заключается в том, что byte используется для хранения необработанных двоичных данных, а другие — для хранения символов или текстовых данных. С точки зрения диапазона, переменная byte может содержать любое значение от -128 до 127, а переменная char может содержать любое значение от 0 до 255.

Сколько байтов составляет буква?

Мы называем 8 бит байтом. В очень распространенной системе ASCII каждая буква алфавита, как заглавная, так и строчная (плюс знаки препинания и некоторые другие символы), соответствует числу от 0 до 255 (например, a=97, b=98 и т. д.), поэтому одна буква может быть выражен одним байтом. Таким образом, слово «Шеннон» занимает 7 байт.

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