Глобальный контекст.ЧислоИзДвоичнойСтроки

Методы · NumberFromBinaryString

Преобразует двоичную строку в значение типа Число. Двоичная строка должна начинаться с префикса "0b", после которого следуют двоичные цифры (одна или больше). Поддерживаются только натуральные числа. Примеры корректных строк: "0b0011001", "0b101001111".

Синтаксис

ЧислоИзДвоичнойСтроки(<ДвоичнаяСтрока>)
Полное описание, параметры и ограничения

Глобальный контекст.ЧислоИзДвоичнойСтроки (Global context.NumberFromBinaryString)

Глобальный контекст (Global context)

ЧислоИзДвоичнойСтроки (NumberFromBinaryString)

Доступен, начиная с версии 8.3.10.

Синтаксис:
ЧислоИзДвоичнойСтроки(<ДвоичнаяСтрока>)
Параметры:

<ДвоичнаяСтрока> (обязательный)
Тип: Строка.
Двоичная строка.
Возвращаемое значение:
Тип: Число.

Описание:

Преобразует двоичную строку в значение типа Число.
Двоичная строка должна начинаться с префикса "0b", после которого следуют двоичные цифры (одна или больше).
Поддерживаются только натуральные числа.
Примеры корректных строк: "0b0011001", "0b101001111".

Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.3.10.

Методическая информация

Практические примеры

Прочитать числовое значение из двоичного и шестнадцатеричного текста

Преобразуем известные строки без префиксов и видим, что один и тот же текст 10 означает разные числа в разных системах счисления.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Все значения учебные и создаются в памяти; документы, регистры и рабочие данные не изменяются.

  2. Выполняйте на сервере учебной базы. Представление десятичного разделителя в сообщениях зависит от локали.

  3. Это текстовые числовые поля, а не байтовый порядок двоичного пакета. Символы префикса 0x/0b здесь не используются.


Сообщить(ЧислоИзДвоичнойСтроки("11111111"));
Сообщить(ЧислоИзШестнадцатеричнойСтроки("FF"));
Сообщить(ЧислоИзДвоичнойСтроки("10"));
Сообщить(ЧислоИзШестнадцатеричнойСтроки("10"));
Сообщить(Число("10"));
Попытка
    Неверное = ЧислоИзШестнадцатеричнойСтроки("0G");
    Сообщить(Неверное);
Исключение
    Сообщить("Некорректное шестнадцатеричное значение отклонено");
КонецПопытки;

Разбор по шагам

  1. 11111111 в двоичной системе и FF в шестнадцатеричной обозначают одно число.

  2. У текста 10 результат зависит от явно выбранной функции преобразования.

  3. Некорректную букву G обрабатываем как ошибку входящих данных.

  4. Не подменяем отсутствующее или неверное значение числом 0.

Как проверить результат

  1. Первые результаты 255 и 255, затем 2, 16 и 10.

  2. Значение 0G отклоняется через исключение.

  3. Замените FF на 0A: результат 10. Если ведущий ноль важен для идентификатора, храните исходную строку отдельно.

Ожидаемый результат

Показаны явные преобразования оснований системы счисления и отказ на неверном символе.

На что обратить внимание

  1. Для номера товара FF может быть именно строковым идентификатором — не преобразуйте его в число без контракта.

  2. Чтение сетевого пакета дополнительно требует знания порядка байтов; эти функции его не определяют.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.