Цитата Сообщение от nikolay861 Посмотреть сообщение
Всем привет, нужно сделать преобразование INT в 16 BITS, т.е. блок должен быть типа INT_TO_BITS, в сигнетикс есть такой блок, и человек что делал программу для шкафа его успешно использовал и теперь мне нужно в скаде как то это обратно разложить, но такого блока как INT_TO_BITS нет, есть только BYTE_TO_BITS, так же есть на форуме не рабочая ссылка на DWORD_TO_BITS.
Я могу это сделать через C#, как пример
Код:
int val = 1;
string binary = Convert.ToString(val, 2); 
Console.WriteLine(binary);
но я на выходе получу 11111111111111111111111111111111, т.е. как мне потом из этого выковыривать статус, это какойто обработчик нужен будет.
Можно и так попробывать
Код:
int number;
byte[] bytes = BitConverter.GetBytes(number);
if (BitConverter.IsLittleEndian)
Array.Reverse(bytes);
Из массива проверять значение.
Может есть какие то другие варианты, свою программу чел переделывать не будет.
Посмотрите блок GetBit или вообще напишите свой блок на ST, читая биты входного слова через точку: bBit0 := wIn.0; и т.д.