Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/47: Рейтинг темы: голосов - 47, средняя оценка - 4.64
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3

Определение изменения бит в байте

27.08.2021, 19:18. Показов 11363. Ответов 128

Студворк — интернет-сервис помощи студентам
Всем ку!
Возник вопрос по оптимальному методу определения изменившихся бит в байте.
Два байта прилетают по сети и имеют следующий вид:

Суть в следующем (на примере байта Е8):
0-й, 3-й и 6-й биты "работы", говорят о включенном или выключенном состоянии участка. 1-й, 2-й, 4-й, 5-й, ... биты - определения сторон (L/R) соотв. участков. Они всегда находятся в одном из двух состояний: 01 либо 10. Состояний 00 или 11 не бывает.
Так вот, в идеале, требуется определить момент смены состояний, допустим с 01 на 10, при установленном бите "работы".
Если бит "работы" не установлен, то изменения состояний бит сторон пофигу.
Пока я делаю это так (без учета бита "работы"):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
            if ( _byte != _oldByte )
            {
                int _change = _byte ^ _oldByte;
 
                for ( int i = 7; i > -1; i-- )
                {
                    if ( ( _change >> i & 1 ) == 1 ) 
                    { 
                        lstSndIndex.Add( i ); //здесь запись в лист индекса изменившихся бит для последующей отправки в сеть
                    }
                }
 
                _oldByte = _byte;   
            }
т.е. я сравниваю текущее состояние с некоторым прошлым значением.
Можно ли как-то сделать иначе?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.08.2021, 19:18
Ответы с готовыми решениями:

Поменять порядок бит в байте
Есть некий байт, необходимо порядок его первых 3х бит поменять на обратный! Подскажите Добавлено через 6 минут По сути надо 0 и 2...

Обмен двух бит в байте местами
Например, требуется обменять местами 2-й и 3-й бит в байте, если один из них == 1. Можно сделать это так: int _byte = 9; //...

В байте не восемь бит.
Мне знакомый показал статейку следующего вида: Внимание! Путаница в терминологии. Читать всем! zaff » 14 авг 2009, 18:09 ...

128
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 11:05  [ТС]
Студворк — интернет-сервис помощи студентам
Элд Хасп, в общем я прихожу к выводу: отказаться от byte, слепив их в ushort и работать с ним.
Позже изложу суть идеи.
И, кстати, проверять на изменение инф. бит я буду только те участки, которые активны в данный момент.
В цикле.

Добавлено через 36 секунд
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если это скорость, использование памяти - то решение будет совсем иное.
Скорее это, да.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 11:06  [ТС]
Цитата Сообщение от vasei50 Посмотреть сообщение
Это правильно)
Что именно?
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 11:15
Цитата Сообщение от wizard41 Посмотреть сообщение
слепив их в ushort и работать с ним
ushort или int.

Цитата Сообщение от wizard41 Посмотреть сообщение
И, кстати, проверять на изменение инф. бит я буду только те участки, которые активны в данный момент.
В цикле.
Я же показал как это можно сделать без цикла с использованием сдвигов и маски.

Всё зависит от тога как вам дальше надо использовать эту полученную информацию.

Если нужно передавать индекс линии и её состояние, то для подсчёта индекса понадобится цикл.

Если же нужно просто передать позиции отслеживаемых изменившихся бит, то циклы уже не нужны.

Для примера.
Было 101_101. Стало 011_101.
Что вам надо передать?
Если 010_000, то циклы не нужны.
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 11:20  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
с использованием сдвигов и маски
а сдвиги как "сдвигать"? не циклом ли?

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Если нужно передавать индекс линии и её состояние, то для подсчёта индекса понадобится цикл
Не передавать индекс, а узнать его.
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 11:55
Цитата Сообщение от wizard41 Посмотреть сообщение
а сдвиги как "сдвигать"? не циклом ли?
Смотря какой нужен результат.
Если из Было 101_101. Стало 011_101. надо получить 010_000, то циклы не нужны.

Цитата Сообщение от wizard41 Посмотреть сообщение
Не передавать индекс, а узнать его.
А дальше что с ним делать?
То есть если при дальнейшей обработке этот индекс надо опять "раскрывать" до позиции, то лучше сразу хранить позицию.
И тогда циклы не будут нужны.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 12:48  [ТС]
Элд Хасп, может быть и так. Давайте я сначала приведу свою идею, а там посмотрим что можно сделать.

Добавлено через 8 минут
Начало такое:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            //Два байта, полученных из сети
            byte E8 = 0b01011101;
            byte E9 = 0b01010111;
 
            //Склейка в int
            int Received = ( E9 << 8 ) | E8;
 
            //Маска активных узлов
            int ActiveMask = 0b0001_001_001_001_001;
 
            //Получаем активные узлы
            int Active = Received & ActiveMask;
 
            Console.WriteLine( Convert.ToString( Received, 2 ) );
            Console.WriteLine( Convert.ToString( Active, 2 ) );
 
            Console.Read();
Пока все вроде верно?

Добавлено через 54 секунды
В данном случае в работе все узлы:
Code
1
1001001001001
Добавлено через 37 минут
Но откажемся от глобального определения активных сторон. Уберем:
C#
1
2
3
4
5
            //Маска активных узлов
            int ActiveMask = 0b0001_001_001_001_001;
 
            //Получаем активные узлы
            int Active = Received & ActiveMask;
Вместо этого просто введем 2 маски:
C#
1
2
3
//Маски
            int actmask = 0b1;
            int sidemask = 0b10;
Далее, в цикле проходим и узнаем включенные участки и их стороны. Выключенные участки игнорируем:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
            for ( int i = 0; i < 5; i++ )
            {
                if ( ( Received & actmask ) != 0 )
                {
                    if ( ( Received & sidemask ) != 0 )
                        Console.WriteLine( "Узел {0} строна {1}", i + 1, "L" );
                    else
                        Console.WriteLine( "Узел {0} строна {1}", i + 1, "R" );
                }
 
                actmask <<= 3;
                sidemask <<= 3;
            }
В данном случае все сработало верно:
Code
1
2
3
4
5
Узел 1 сторона R
Узел 2 сторона L
Узел 3 сторона R
Узел 4 сторона L
Узел 5 сторона R
Добавлено через 3 минуты
P.S. И вот этот код уже упрощение того, что я наворотил пол года назад, используя byte.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 12:54
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
            //Маска активных узлов
            int ActiveMask = 0b0001_001_001_001_001;
 
            //Получаем активные узлы
            int Active = Received & ActiveMask;
 
           // Маска отслеживаемых бит.
           int listen = Active << 1 | Active << 2;
 
           // Маска изменившихся бит
           int changed = Received ^ oldReceived;
 
           // Маска изменившихся отслеживаемых бит
           int changedListen = changed & listen;
 
           // Новое состояние изменившихся отслеживаемых бит
           int newBits = Received & changedListen;
1
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 13:00  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
C#
1
2
// Новое состояние изменившихся отслеживаемых бит
int newBits = Received & changedListen;
А потом все равно циклом проходить и узнавать измененные? Т.е. мне отправлять все равно bit из byte, т.е. 0b1 сдвигать влево на измененную позицию.

Добавлено через 1 минуту
Цитата Сообщение от wizard41 Посмотреть сообщение
сдвигать влево на измененную позицию
В данном случае считывать каждый бит из newBits.

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
C#
1
2
// Маска отслеживаемых бит.
           int listen = Active << 1 | Active << 2;
Хм, хотя... Что-то в этом есть.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 13:07
Получение строкового представления:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static string ToString(int newBits)
{
     StringBuilder buider = new StringBuilder();
     for(int i =1; i < 6; i++)
     {
         if (newBits & 0b_110 != 0)
         {
              if (buider.Lenght > 0)
                  buider.AppendLine();
 
              buider.Append("Узел ");
              buider.Append(i);
              buider.Append(" сторона ");
              if (newBits & 0b_010 != 0)
                  buider.Append("R");
              else
                  buider.Append("L");
         }
         newBits >>=3;
      }
       return builder.ToString();
}
Добавлено через 2 минуты
Цитата Сообщение от wizard41 Посмотреть сообщение
Т.е. мне отправлять все равно bit из byte
Я об этом и интересуюсь.
Что вам дальше нужно для работы: индекс бита или его позиция?

Это же определяется принимающей стороной.
И я этого не знаю.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 13:09  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
newBits >>=3;
А почему сдвиг вправо?
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Получение строкового представления:
Строки это просто для теста в консоли. На самом деле они не нужны. Главное определить где что изменилось.

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Это же определяется принимающей стороной.
Нет, это как раз определяется этой программой. И включается нужный удаленный выход, согласно "новой" стороне.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 13:12
Цитата Сообщение от wizard41 Посмотреть сообщение
Строки это просто для теста в консоли. На самом деле они не нужны. Главное определить где что изменилось.
Я поэтому и дал это отдельным методом.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 13:17  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я об этом и интересуюсь.
Попробую изложить яснее:
Возьмем 8 бит (байт), например такие: 00010011. Согласно ему, я отправляю в трубу его же, и "там где-то" включаются выхода, равные "1". Остальные включенные гаснут. Когда изменится приходящий байт, например на такой: 00100101, то в соответствие ему, нужно погасить включенные ранее выхода и включить другие, которые стали равны "1". Эти операции происходят не сразу по получении новой пачки, а по команде 1С. Но к приходу этой команды от 1С, я уже знаю какие раскаты активны и какие стороны в данной момент в работе.

Добавлено через 2 минуты
Цитата Сообщение от wizard41 Посмотреть сообщение
например такие: 00010011
Значение взято чисто для примера.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 13:19
Цитата Сообщение от wizard41 Посмотреть сообщение
И включается нужный удаленный выход, согласно "новой" стороне.
То есть нужно именно раздельно для каждой стороны: номер стороны и какую сторону включить?


Или у всех сторон один общий управляющий порт как и у принимающего?

Вот для включения "второй стороны R"

Что надо передать?

В общий порт "0b_010_000" или в порт второй стороны "0b_01"?

Добавлено через 1 минуту
Цитата Сообщение от wizard41 Посмотреть сообщение
нужно погасить включенные ранее выхода и включить другие, которые стали равны "1"
Ну так мой код вроде именно это и делает.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 13:22  [ТС]
Почему я хочу отловить момент изменения сторон:
потому что 1С-ники иногда халтурят и их алгоритм не сразу удаляет файлы после переключения сторон из общей папки.
Это критично.
Поэтому, узнав, какая сторона изменилась, я хочу удалять эти файлы сам File.Delete().

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ну так мой код вроде именно это и делает.
Я не могу передать байт, только побитно. Пока не разбирался почему контроллер выплевывает посылку с целым байтом.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 13:25
Цитата Сообщение от wizard41 Посмотреть сообщение
Я не могу передать байт, только побитно.
Побитно, это байт надо распарсить на восемь байт.
Или надо передавать номер бита и его новое состояние.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 13:30  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Или у всех сторон один общий управляющий порт как и у принимающего?
Это два разнесенных в пространстве контроллера, отвечающих каждый за свои операции. С одного я получаю фактическое состояние линий, а на другой передаю управляющие команды. Более того, они находятся в разных подсетях. Ну, в прочем, это к вопросу не относится.

Добавлено через 46 секунд
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Побитно, это байт надо распарсить на восемь байт.
На 8 бит.
Именно.

Добавлено через 1 минуту
Цитата Сообщение от wizard41 Посмотреть сообщение
Именно.
Даже не так. Передать только измененные биты из байта. Как раз я это делаю вылавливая их позиции (индексы). В первоначальном варианте им. в виду.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 13:46
Цитата Сообщение от wizard41 Посмотреть сообщение
Передать только измененные биты из байта.
У нас катастрофическое отсутствие взаимопонимания...
Я никак не могу получить нужного мене ответа.
Возможно неверно объясняю что мне нужно.

Вы пишите
Цитата Сообщение от wizard41 Посмотреть сообщение
Я не могу передать байт, только побитно.
Допустим, есть old 011_011 и new 101_101.
Вы не может это передать как 101_101 или 100_100.
Вам нужно передавать это побитно.

Но что означает побитно?
Это передача индекса изменившего бита и его состояния?
Но тогда как вы совмещаете эту информацию в передаваемом байте?

Или вам нужно передавать байты в котором только по одному установленному биту?
То есть вместо 100_100 надо передать 000_100, 100_000.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 14:08  [ТС]
Элд Хасп, а
C#
1
Received ^ oldReceived;
oldReceived - это видимо в конце
C#
1
oldReceived = Received;
?

Добавлено через 3 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
У нас катастрофическое отсутствие взаимопонимания...
Видимо, есть такое
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Вам нужно передавать это побитно.
Но что означает побитно?
Вообще у меня не возникает проблем с определением и передачей изменившихся бит. Вопрос заключался в том, как наименее затратно отловить изменения, причем только на активных участках.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Это передача индекса изменившего бита и его состояния?
Это передача бита (его состояния) по индексу.

Добавлено через 4 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Допустим, есть old 011_011 и new 101_101.
В этом случае что мы видим: смещение первого и 4-го бит влево на одну позицию. Остальные единицы остались на своих местах. Следовательно, я передаю в сеть только изменившиеся состояния, т.е. из этого байта я отправляю биты из позиций 1,2 и 4,5. (По очереди!)

Добавлено через 9 минут
Элд Хасп, я пока остановился на вот этом вашем варианте. Подумаю, как приспособить.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
29.08.2021, 14:16
Цитата Сообщение от wizard41 Посмотреть сообщение
из этого байта я отправляю биты из позиций 1,2 и 4,5. (По очереди!)
Отправлять вы можете только байты.
Значит вы отправляете 4 байта.
Каких?
000_010, 000_100, 010_000, 100_000 ?

Цитата Сообщение от wizard41 Посмотреть сообщение
Вопрос заключался в том, как наименее затратно отловить изменения, причем только на активных участках.
Мой код из поста №27 проверяли.
Разве он не это делает?

Цитата Сообщение от wizard41 Посмотреть сообщение
oldReceived - это видимо в конце
Нет. Надо же переписать только отслеживаемые биты.
Это будет:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
            //Маска активных узлов
            int ActiveMask = 0b_001_001_001_001_001;
 
            //Получаем активные узлы
            int Active = Received & ActiveMask;
 
           // Маска отслеживаемых бит.
           int listen = Active << 1 | Active << 2;
 
           // Маска изменившихся бит
           int changed = Received ^ oldReceived;
 
           // Маска изменившихся отслеживаемых бит
           int changedListen = changed & listen;
 
           // Новое состояние изменившихся отслеживаемых бит
           int newBits = Received & changedListen;
 
          // Запоминание состояния отслеживаемых бит
          oldReceived &= ~changedListen; // Сброс ранее сохранённого состояния бит.
          oldReceived |= newBits; // Запись на их место новых состояний.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
29.08.2021, 14:30  [ТС]
Элд Хасп, похоже я понял в чем причина недопонимания. Скорее всего в механизме отправки, т.е. что в каком виде передается и куда записывается.
Поясню:
Есть такая функция SendBit(byte, position). Подставим значения: SendBit(0b00110011, 4).
В удаленный контроллер отправится 4-й бит из байта со значением "1". И(!) запишется в 4-й выход(!) контроллера, т.е. его включит. Если мы изменим position на 3, то произойдет передача 3-го бита, который в данном случае == 0, и 3-й выход сбросится (отключится).
Наверное, теперь должно быть яснее.

Добавлено через 3 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Отправлять вы можете только байты.
Естественно. Я имел в виду байт в информационной части посылки. Такая функция в библиотеке есть (SendByte), но она почему-то не работает (контроллер отклоняет ее с кодом ошибки). Сама же посылка (TCP) длиной от 4 до 16 байт.

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Мой код из поста №27 проверяли.
Да, проверил. О нем и речь. Пока заложил как основу.

Добавлено через 2 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Мой код из поста №27 проверяли.
Я его оберну в функцию и прокручу с разными входными байтами. Чуть позже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.08.2021, 14:30

Изменить рандомный бит в байте
Доброго времени суток. Подскажите пожалуйста, как сменить рендомный бит в считанном из файла байте? На другом языке обычно строка - это...

Порядок байт в слове и бит в байте
читал эту требуются пояснения. A B C D - адреса в них число 128 BE A B C D ...

Написать функцию, меняющую порядок бит в байте
написать функцию, меняющую порядок бит в байте. заранее спасибо

последовательность инструкций для обнуления трех старших бит регистра DH, без изменения остальных бит
Напишите последовательность инструкций для обнуления трех старших бит регистра DH, без изменения остальных бит; результат сохраните в...

Есть ли функция которая может определить сколько бит в байте?
Нужно получить количество бит из байта, может есть готовые функции возвращающие результат?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru