В новой версии «1С:Предприятия» появятся побитовые операции с целыми числами

07.07.2017      46329
Разработчики добавят в версию 8.3.11 «1С:Предприятия» набор побитовых функций для работы с числами – более лаконичный, чем появившийся ранее набор побитовых операций на уровне буферов двоичных данных, но аналогичный по составу.

«Прежде всего, это “стандартный” набор операций: ПобитовоеИ(), ПобитовоеИли(), ПобитовоеНе(), ПобитовоеИНе() и ПобитовоеИсключительноеИли(). Аргументы этих функций интерпретируются как 32-битные целые числа без знака. Результатом этих функций также является число, получаемое в результате побитового объединения аргументов по правилам выбранной логической операции», – сообщается в технологическом блоге разработчиков 1С. 

Были добавлены две операции сдвига: ПобитовыйСдвигВлево() и ПобитовыйСдвигВправо(). С их помощью можно сдвинуть двоичное представление числа на нужное количество битов, а освободившиеся разряды заполнить нулями. Реализованы и функции, которые дают возможность проверить состояние отдельного бита (ПроверитьБит()) или сразу нескольких битов (ПроверитьПоБитовойМаске()), а также установить отдельный бит числа в нужное вам значение (УстановитьБит()).

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


На втором примере показано, как узнать о том, что признаки товара (Свойства) соответствуют ожидаемым значениям (штучный товар, разрешенный к продаже):



Третий пример иллюстрирует ситуацию, в которой необходимо применить сдвиг на несколько битов:


Напомним, что ранее для «1С:Предприятия 8.3.11» уже была анонсирована оптимизация реструктуризации базы данных и доработанный механизм расширений, а также ряд других полезных функций. 



Автор:
Редактор ленты новостей


См. также

Не найдено ни одной записи.
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. user642047_ziborov.roman 07.07.17 13:33 Сейчас в теме
Толково изложено
2. alexsander.sharikov 07.07.17 14:52 Сейчас в теме
Ну наконец-то. Только вот почему не через операторы, но лучше так, а не как.
5. Brawler 458 07.07.17 19:36 Сейчас в теме
(2) Ну 1С гораздо проще функционал наращивать именно вводя новые методы, при этом не приходится изменять язык разработки.
Платформа 1С же в своем нутре использует аналог скриптовой машины типа Pascal Script, которая позволяет в зависимости от ряда условий вводить новый методы для использования или исключать их, в контексте платформы 1С это можно сказать зависит от режима совместимости установленного в конфигурации.
vbuots; Diversus; +2 Ответить
3. androgin 07.07.17 15:20 Сейчас в теме
ну и зачем?
для чего?
зы: а зачем копипастом заниматься, если можно привести ссылку? (чисто из интереса)
4. aximo 2100 07.07.17 18:13 Сейчас в теме
Ну и привели бы что такое "Свойства"
6. FarhadIlyazov 67 07.07.17 21:56 Сейчас в теме
Круто круто, не хватало!!!
7. boln 1041 07.07.17 23:43 Сейчас в теме
Гм, на заре трудовой деятельности, когда работал на Ассемблере еще всяких "ЭВМ", а не "компьютеров", мне показали прикол, как поменять местами содержимое двух области памяти без промежуточного буфера:
a XOR b;
b XOR a;
a XOR b;
(XOR - исключающее ИЛИ). И две области памяти, a и b, меняются местами. Когда имеющаяся оперативная память измерялась несколькими десятками килобайт, этот прием был полезен. Сейчас - как музейный экспонат, в контексте побитовых операций :)
BigMih; Ziggurat; awk; v3rter; dimpson; JohnyDeath; +6 Ответить
8. dimpson 20 10.07.17 11:46 Сейчас в теме
(7) Работает!
9. Serg O. 297 10.07.17 23:45 Сейчас в теме
Это вместо 8 булево... Можно одно число.… или зачем это ещё?
10. Ziggurat 50 22.11.17 12:27 Сейчас в теме
(9) можно обменивать значения двух переменных без использования промежуточного буфера, можно хранить в числах свойства номенклатуры и проверять по маске... Возможности использования данного функционала ничем не ограничиваются!
11. Rafaraf 37 04.01.23 20:49 Сейчас в теме
(10) никак не воспроизведу обмен без использования промежуточного буфера функцией ПобитовоеИсключительноеИли (BitwiseXor)
Оставьте свое сообщение