Добрый день!

Подскажите, каким образом можно разбить строку вида 11000000101010000000000000000001 на 4 части (по 8 символов), чтобы получить

a = 11000000
b = 10101000
c = 00000000
d = 00000001

Затрял, т.к. не за что зацепиться, нет ни "." ни "," ни "/" итд

Спасибо.
---
как более универсальный вариант:

```1c
    ИсходнаяСтрока = "11000000101010000000000000000001";
    РезультатМассив = Новый Массив;
    Для к = 0 По 3 Цикл
    РезультатМассив.Добавить(Сред(ИсходнаяСтрока, к*8+1, 8));
    КонецЦикла;
```
---
как более универсальный вариант:

```1c
    ИсходнаяСтрока = "11000000101010000000000000000001";
    РезультатМассив = Новый Массив;
    Для к = 0 По 3 Цикл
    РезультатМассив.Добавить(Сред(ИсходнаяСтрока, к*8+1, 8));
    КонецЦикла;
```
---
(2) Ребята, большое спасибо! Сделал!

Если возможно, подскажите пожалуйста, как победить:

все та же строка ИсходнаяСтрока = "11000000101010000000000000000001";
переменная Z = 8

отсчитываем от начала строки Z (в нашем примере 8) символов в строке, и с 9 по 32 заменяем все символы на "0"

Насколько я понял тут также необходим цикл с 1 По 32 и СтрЗаменить. Но не получается отсчитать 8 символов и соединить со СтрЗаменить..
---
А что, нельзя получить первые 8 символов и присоединить строку из 24 нулей?
---
можно, но Z будет меняться от 8 до 30 (префиксы маски подсети), и тогда нужно как-то вычислять сколько останется добавить нулей и указать с какого места С этим мне пока трудно будет разобраться
---
Как то так

```1c
    ИсходнаяСтрока = "11000000101010000000000000000001";

    СтрокаНулей = "00000000000000000000000000000000";//их 32

    Z = 8;

    КонечнаяСтрока = Лев(ИсходнаяСтрока, Z) + Лев(СтрокаНулей, СтрДлина(ИсходнаяСтрока)-Z);
```
---
ИсходнаяСтрока = "11000000101010000000000000000001";

СтрокаНулей = "00000000000000000000000000000000";//их 32

Z = 8;

КонечнаяСтрока = Лев(ИсходнаяСтрока, Z) + Лев(СтрокаНулей, СтрДлина(ИсходнаяСтрока)-Z);

Спасибо!
А если в самом конце итоговой строки мне нужно будет вставить символ "Е", правильно ли я модифицировал код? Работает, но не уверен что правильно сделал

```1c
    ИсходнаяСтрока = "11000000101010000000000000000001";

    СтрокаНулей = "00000000000000000000000000000000";//их 32

    Z = 8;

    СимволВКонце = "Е";

    КонечнаяСтрока = Лев(ИсходнаяСтрока, Z) + Лев(СтрокаНулей, СтрДлина(ИсходнаяСтрока)-Z-1) + Прав(СимволВКонце, 1);
```

(10)
---
вернее не вставить, а заменить
---
Не совсем правильно.

```1c
    ...
    СимволВКонце = "Е";

    КонечнаяСтрока = Лев(ИсходнаяСтрока, Z) + Лев(СтрокаНулей, СтрДлина(ИсходнаяСтрока)-Z-1) + СимволВКонце;
```
---
а смысл тогда вообще это делать, забей сразу нули.
---
в Z буду передавать значения от 8 до 30
---
озвучили бы задачу корректно. А то какая то ахелесица!
---
Прошу прощения, не стал описывать всю задачу, думал спросить точечно

Создаю обработку генерации конфиг файлов для сетевого оборудования, с последующим заливом . Естественно, необходимо производить расчет сети, и пришлось сооружать мини subnet калькулятор. Адреса из формата dec перевожу в bin, выполняю операции, а затем снова перевожу в dec.
Мой первый вопрос был как раз связан с обратным переводом в dec (где разбивал на 4 части), а второй с расчетом host min и host max
Для наглядности прикладываю скрин
---
разбил строку на массив
Перевёл в двоичные, вопрос только зачем.
Далее нужно указать маску.
24 это 255.255.255.0?
Потом точно так же.
---
Лев 8
Сред 9 8
Сред 17 8
Прав 8
Если строка всегда 32 символа.