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

Из курса информатики

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

Стоит запомнить следующее:

  1. Самая мелкая единица измерения – это бит.
  2. Бит – количество данных, необходимых для однозначного определения одного из двух равновероятных событий.
  3. Байт – последовательности длиной 8 битов. Они приняты в информатике.
  4. Килобайт – 1024 байта.
  5. Мегабайт – один из самых известных вариантов измерения. Равен 1024 килобайта.
  6. Гигабайт – 1024 МБ.
  7. Терабайт – это 1024 гигабайта.
  8. В 1 бит можно записать один двоичный символ.

В ASCII в один байт записывается один 256-символьный код, а в UNICODE на него требуется 2 байта.

Информационный объем

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

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

В Java

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

Для того, чтобы лучше понимать производительность string и Java, рекомендуется сначала изучать Java API. После этого преобразования будут усваиваться лучше. Работа осуществляется с char и byte.

Метод GetBytes

Рассматривая производительность string и пытаясь перевести текст (слово) в bytes, нужно понимать – у Java есть для этого специализированные инструменты. Они помогают программисту to обрабатывать байтовые последовательности и сериализовать strings, а также реализовывать всевозможные протоколы.

Первый вариант – это использование метода getBytes. Он предусматривает следующие особенности:

  1. Относится to class String.
  2. Является одним из самых распространенных для преобразования String методов.
  3. Обладает формой getBytes(charsetName). CharsetName ссылается to кодировку String.
  4. Если кодировки to string нет, метод переводит string to bytes самостоятельно. В процессе используется кодировка, установленная в операционной системе «по умолчанию».

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

Пакет NIO

Перевести text to bytes в Джаве можно иначе. Пример – использование класса ByteBuffer. Он находится в пакете под названием NIO. Относится к классическим методам конвертации информации.

Примеры

Теперь можно рассмотреть наглядные примеры реализации поставленной задачи. В случае с ASCII получится такой код:

Символы и байты – особенности конвертации в Java

Здесь:

  1. Происходит создание to массив b через кастинг каждого символьного значения в байтовый эквивалент. Во внимание принимается диапазон ASCII (0-127). Каждый элемент занимает to 1 byte.
  2. Обратное преобразование множества информации в массиве b можно провести через конструктор new String(byte[]): Символы и байты – особенности конвертации в Java.
  3. Для кодировки по умолчанию можно воспользоваться такой записью: Символы и байты – особенности конвертации в Java.
  4. Каждый char будет занимать to 2 bytes. Чтобы преобразовать строчки в байтовый вид, потребуется все его элементы (буквы и символьные записи) перевести в двухбайтовый вид. А затем – обратно в str: Символы и байты – особенности конвертации в Java.
  5. Каждый char восстанавливается из двухбайтового аналога, после чего через конструктор string(char[]) создает новый объект.

Звучит сложно, но на практике такое конвертирование знаков не слишком трудное. А вот пример возможностей NIO для решения поставленной изначально задачи:

Символы и байты – особенности конвертации в Java

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

Несколько слов о производительности

Вот – результаты проведенных тестов производительности для каждого рассмотренного метода. Сначала – работа со строчками и переводы to bytes:

Символы и байты – особенности конвертации в Java

И отображение обратной операции:

Символы и байты – особенности конвертации в Java

Абсциссы – это количество тестов, ординаты – операции в секунду для каждой «проверки». То, что находится выше, обладает большей скоростью. «Классические» методы отработали хуже. Это нормальное явление. Задействованные реализации увеличили производительность почти на 30%.

Отсюда следует вывод – для того, чтобы перевести текст в байтовый вид быстро, можно использовать самописные методы. Они приводят к увеличению скорости обработки информации на 40-45%.

Для чайников

Задумываясь над тем, как символы текста перевести в байты, можно прийти к выводу, что не все готовы программировать или производить самостоятельные подсчеты. Но выход из ситуации есть. А именно – специализированные приложения. Они называются «конвертерами».

Обычно представлены онлайн страницами. Пользователь должен:

  1. Написать в окне желаемый текст.
  2. Выбрать параметры преобразования.
  3. Подтвердить операцию.

Это – самый быстрый и надежный вариант для тех, кто далек от информационных технологий. Здесь возможны обратные преобразования.

А вот – еще один онлайн-конвертер. Он более совершенный. Здесь можно выставлять учет регистра, а также исключения некоторых символов.

Символы и байты – особенности конвертации в Java