Сколько байт весит один символ

от admin

Сколько байт весит один символ

Lorem iorLorem ipsum dolor sit amet, sed do eiusmod tempbore et dolore maLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempborgna aliquoLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempbore et dLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempborlore m mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetu sed do eiusmod qui officia deserunt mollit anim id est laborum.

Lorem ipsum dolor sit amet, consectetur adipisicing sed do eiusmod tempboLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod temLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempborpborrum.

Почему для кодирования одного символа нужен именно 1 байт?

Почему для кодирования 1-го символа нужен именно 1 байт?

Я прекрасно понимаю, что минимальная единица информации — 1 бит и чтобы выразить 255 символов в двоичном коде надо использовать 8 бит. И по таблице брать двоичный код и по нему находить нужный символ, но почему каждый символ обязательно занимает 1 байт? Зачем записывать число именно вот так 0000001 , а не просто 1 , тем самым заняв всего 1 бит информации и по таблице взять ему соответствующий символ.

Не обязательно 1 ..есть кодировки (например utf-16, utf-32 ) где символы по 2 , по 4 байта. тут еще многое зависит от количества кодируемых символов. не всегда хватает 256 вариантов. часто нужно больше.то есть битность напрямую зависит от числа символов в таблице символов. Если влезть в ассемблер, то можно сделать свою таблицу символов. проблема будет только в том что твою кодировку будет понимать только твоя программа. А так просто принятый стандарт, и все. по поводу же адресации, да — опять же стандарт. хотя есть системы , которые работают и 9-ю битами ( старые советские системы связи) , где 9-й бит был или контрольным или знак передавал.

Компьютерная грамотность с Надеждой

Заполняем пробелы — расширяем горизонты!

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

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

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

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

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

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

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

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

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

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

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

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

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

1 Мб (1 Мегабайт) = 2 20 байт = 1024 килобайт (примерно 1 миллион байт – 10 6 байт)

1 Гб (1 Гигабайт) = 2 30 байт = 1024 мегабайт (примерно 1 миллиард байт – 10 9 байт)

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

1 Пб (1 Петабайт) = 2 50 байт = 1024 терабайт (примерно 10 15 байт).

1 Эксабайт = 2 60 байт = 1024 петабайт (примерно 10 18 байт).

1 Зеттабайт = 2 70 байт = 1024 эксабайт (примерно 10 21 байт).

1 Йоттабайт = 2 80 байт = 1024 зеттабайт (примерно 10 24 байт).

В приведенной выше таблице степени двойки (2 10 , 2 20 , 2 30 и т.д.) являются точными значениями килобайт, мегабайт, гигабайт. А вот степени числа 10 (точнее, 10 3 , 10 6 , 10 9 и т.п.) будут уже приблизительными значениями, округленными в сторону уменьшения. Таким образом, 2 10 = 1024 байта представляет точное значение килобайта, а 10 3 = 1000 байт является приблизительным значением килобайта.

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

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

10 3 b = 10*10*10 b= 1000 b – килобайт

10 6 b = 10*10*10*10*10*10 b = 1 000 000 b – мегабайт

10 9 b – гигабайт

10 12 b – терабайт

10 15 b – петабайт

10 18 b – эксабайт

10 21 b – зеттабайт

10 24 b – йоттабайт

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

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

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

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

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

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

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

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

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

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

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

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

а что делают UTF-7, UTF-6, UTF-16 и др. в смысле? Это разные версии Юникода?

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

10 ответов:

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

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

Юникод сам по себе является отображением, он определяет кодовые точки, А кодовая точка-это число, связанное с обычно символ. Я говорю обычно, потому что есть такие понятия, как сочетание символов. Вы можете быть знакомы с такими вещами, как акценты, или умляуты. Они могут быть использованы с другим персонажем, такие как a или u для создания нового логического символа. Поэтому символ может состоять из 1 или более кодов.

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

из-за гибкости комбинирования символов, даже в пределах заданной кодировки количество байтов на символ может варьироваться в зависимости от символа и формы нормализации. Это протокол для работы с персонажами, которые имеют более чем одно представление (можно сказать «an ‘a’ with an accent» который является 2 кодовыми точками, одна из которых является объединяющим символом или «accented ‘a'» который является одной кодовой точкой).

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

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

обновление

Как prewett указано, что это правило применяется только к UTF-8

Читать:
Warp что это за приложение отзывы пользователей

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

насколько я знаю, старые символы ASCII занимали один байт на символ.

право. На самом деле, поскольку ASCII является 7-битным кодированием, он поддерживает 128 кодов (95 из которых можно распечатать), поэтому он использует только половину байта (если это имеет смысл).

сколько байт делает Юникод характер требуют?

Unicode просто отображает символы в кодовые точки. Он не определяет, как их кодировать. Текстовый файл не содержит символов Юникода, но байты/октеты, которые могут представлять символы Юникода.

я полагаю, что один символ Юникода может содержать все возможные символ из любого языка — я прав?

нет. Но почти. Так что в принципе да. Но все равно нет.

Так сколько байты это нужно на символ?

то же, что и ваш 2-й вопрос.

а что означают UTF-7, UTF-6, UTF-16 и т. д.? Они что-то вроде Юникода версии?

нет, это кодировки. Они определяют, как байты / октеты должны представлять символы Юникода.

пара примеров. Если некоторые из них не могут быть отображены в вашем браузере (вероятно, потому, что шрифт не поддерживает их), перейдите в http://codepoints.net/U+1F6AA (заменить 1F6AA с кодовой точкой в шестнадцатеричном формате), чтобы увидеть изображение.

    • U + 0061 ЛАТИНСКАЯ СТРОЧНАЯ БУКВА A: a
      • Nº: 97
      • UTF-8: 61
      • UTF-16: 00 61
    • U+00A9 ЗНАК АВТОРСКОГО ПРАВА: ©
      • Nº: 169
      • UTF-8: C2 A9
      • UTF-16: 00 A9
    • U+00AE ЗАРЕГИСТРИРОВАННЫЙ ЗНАК: ®
      • Nº: 174
      • UTF-8: C2 AE
      • UTF-16: 00 AE
    • U+1337 ЭФИОПСКИЙ СЛОГ PHWA: ጷ
      • Nº: 4919
      • UTF-8: E1 8C B7
      • UTF-16: 13 37
    • U + 2014 EM DASH: —
      • Nº: 8212
      • UTF-8: E2 80 94
      • UTF-16: 20 14
    • U+2030 ЗА МИЛЛЬ ЗНАК: ‰
      • Nº: 8240
      • UTF-8: E2 80 B0
      • UTF-16: 20 30
    • ЗНАК ЕВРО U+20AC: €
      • Nº: 8364
      • UTF-8: E2 82 AC
      • UTF-16: 20 AC
    • U+2122 ЗНАК ТОРГОВОЙ МАРКИ: ™
      • Nº: 8482
      • UTF-8: E2 84 A2
      • UTF-16: 21 22
    • U+2603 СНЕГОВИК: ☃
      • Nº: 9731
      • UTF-8: E2 98 83
      • UTF-16: 26 03
    • U + 260E ЧЕРНЫЙ ТЕЛЕФОН: ☎
      • Nº: 9742
      • UTF-8: E2 98 8E
      • UTF-16: 26 0E
    • U+2614 ЗОНТИК С КАПЛЯМИ ДОЖДЯ: ☔
      • Nº: 9748
      • UTF-8: E2 98 94
      • UTF-16: 26 14
    • U + 263A БЕЛОЕ УЛЫБАЮЩЕЕСЯ ЛИЦО: ☺
      • Nº: 9786
      • UTF-8: E2 98 BA
      • UTF-16: 26 3A
    • U + 2691 ЧЕРНЫЙ ФЛАГ: ⚑
      • Nº: 9873
      • UTF-8: E2 9A 91
      • UTF-16: 26 91
    • U+269B СИМВОЛ АТОМА: ⚛
      • Nº: 9883
      • UTF-8: E2 9A 9B
      • UTF-16: 26 9B
    • U+2708 САМОЛЕТ: ✈
      • Nº: 9992
      • UTF-8: E2 9C 88
      • UTF-16: 27 08
    • U + 271E ЗАТЕНЕННЫЙ БЕЛЫЙ ЛАТИНСКИЙ КРЕСТ: ✞
      • Nº: 10014
      • UTF-8: E2 9C 9E
      • UTF-16: 27 1E
    • U + 3020 ПОЧТОВЫЙ ЗНАК ЛИЦО: 〠
      • Nº: 12320
      • UTF-8: E3 80 А0
      • UTF-16: 30 20
    • U+8089 CJK UNIFIED IDEOGRAPH-8089: 肉
      • Nº: 32905
      • UTF-8: E8 82 89
      • UTF-16: 80 89
    • U + 1F4A9 КУЧА КАКАШЕК:
      • Nº: 128169
      • UTF-8: F0 9F 92 A9
      • UTF-16: D8 3D DC A9
    • U+1F680 ROCKET:
      • Nº: 128640
      • UTF-8: F0 9F 9A 80
      • UTF-16: D8 3D DE 80

ОК Я уже увлекся.

  • если вы ищете конкретный символ, вы можете скопировать и вставить его на http://codepoints.net/.
  • я потратил много времени на этот бесполезный список (но он отсортирован!).
  • MySQL имеет кодировку под названием «utf8», которая на самом деле не поддерживает символы длиной более 3 байт. Так что вы не можете вставить кучу ПУ, поле будет просто обрезаются. Использовать «utf8» вместо этого.
  • здесь тестовая страница снеговика (unicodesnowmanforyou.com).

проще говоря Unicode — это стандарт, который присваивает один номер (называемый кодовой точкой) всем символам мира (его работа все еще продолжается).

теперь вам нужно представить этот код точки с помощью байтов, что называется character encoding . UTF-8, UTF-16, UTF-6 способы представления этих символов.

UTF-8 — это многобайтовая кодировка. Символы могут иметь от 1 до 6 байт (некоторые из них могут не потребоваться прямо сейчас).

UTF-32 каждый символ имеет 4 байта характер.

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

  1. составленные символы, где вместо использования объекта символа, который уже акцентирован / диакритический (À), пользователь решил объединить акцент и базовый символ (`A).
  2. кодовые точки. Кодовые точки-это метод, с помощью которого UTF-кодировки позволяют кодировать больше, чем обычно позволяет количество бит, которое дает им их имя. Например, UTF-8 обозначает определенные байты, которые сами по себе являются недопустимыми, но когда за ними следует допустимый байт продолжения, это позволит описать символ за пределами 8-битного диапазона 0..255. Смотрите примеры и слишком длинные кодировки ниже в статье Википедии на UTF-8.
    • отличный пример, приведенный там, что € символ (кодовая точка U+20AC может быть представлена как три-байт последовательность E2 82 AC или четыре-байт последовательность F0 82 82 AC .
    • оба действительны, и это показывает, насколько сложным является ответ, когда речь идет о «Unicode», а не о конкретной кодировке Unicode, такой как UTF-8 или UTF-16.

в UTF-8:

в UTF-16:

в UTF-32:

10FFFF-это последняя кодовая точка unicode по определению, и она определена таким образом, потому что это Технический предел UTF-16.

Это также самая большая кодовая точка UTF-8 может кодироваться в 4 байта, но идея кодирования UTF-8 также работает для 5 и 6 байтовых кодировок для покрытия кодовых точек до 7FFFFFFF, т. е. половина того, что может UTF-32.

Ну я просто вытащил страницу Википедии на нем тоже, и в вводной части я увидел «Unicode может быть реализован различными кодировками символов. Наиболее часто используемые кодировки-UTF-8 (который использует один байт для любых символов ASCII, которые имеют одинаковые значения кода как в кодировке UTF-8, так и в кодировке ASCII, и до четырех байтов для других символов), теперь устаревший UCS-2 (который использует два байта для каждого символа, но не может кодировать каждый символ в текущем Unicode стандартный)»

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

Итак, ваш простой ответ, который вы хотите, заключается в том, что он меняется.

для UTF-16 символу требуется четыре байта (две единицы кода), если он начинается с 0xD800 или больше; такой символ называется «суррогатной парой».»Более конкретно, суррогатная пара имеет вид:

где [. ] обозначает двухбайтовый кодовый блок с заданным диапазоном. Все, что = 0xE000 недопустимо (за исключением маркеров спецификации, возможно).

посмотреть http://unicodebook.readthedocs.io/unicode_encodings.html, раздел 7.5.

зацените Unicode code converter. Например, введите 0x2009 , где 2009-Это номер Юникода для тонкого пространства, в «0x. поле «нотация» и нажмите кнопку Преобразовать. Шестнадцатеричное число E2 80 89 (3 байта) появляется в поле «кодовые единицы UTF-8».

Похожие статьи