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

Возврат к списку

07.07.2017     
Разработчики добавят в версию 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) 328 07.07.17 19:36 Сейчас в теме
(2) Ну 1С гораздо проще функционал наращивать именно вводя новые методы, при этом не приходится изменять язык разработки.
Платформа 1С же в своем нутре использует аналог скриптовой машины типа Pascal Script, которая позволяет в зависимости от ряда условий вводить новый методы для использования или исключать их, в контексте платформы 1С это можно сказать зависит от режима совместимости установленного в конфигурации.
Diversus; +1 Ответить
3. Виктор Назаров (androgin) 07.07.17 15:20 Сейчас в теме
ну и зачем?
для чего?
зы: а зачем копипастом заниматься, если можно привести ссылку? (чисто из интереса)
4. Дмитрий Никс (aximo) 668 07.07.17 18:13 Сейчас в теме
Ну и привели бы что такое "Свойства"
6. Фархад Ильязов (FarhadIlyazov) 41 07.07.17 21:56 Сейчас в теме
Круто круто, не хватало!!!
7. Николай Больсунов (boln) 944 07.07.17 23:43 Сейчас в теме
Гм, на заре трудовой деятельности, когда работал на Ассемблере еще всяких "ЭВМ", а не "компьютеров", мне показали прикол, как поменять местами содержимое двух области памяти без промежуточного буфера:
a XOR b;
b XOR a;
a XOR b;
(XOR - исключающее ИЛИ). И две области памяти, a и b, меняются местами. Когда имеющаяся оперативная память измерялась несколькими десятками килобайт, этот прием был полезен. Сейчас - как музейный экспонат, в контексте побитовых операций :)
awk; v3rter; dimpson; JohnyDeath; +4 Ответить
8. Дмитрий Солдатов (dimpson) 13 10.07.17 11:46 Сейчас в теме
9. Сергей Огородников (Serg O.) 133 10.07.17 23:45 Сейчас в теме
Это вместо 8 булево... Можно одно число.… или зачем это ещё?
Оставьте свое сообщение