Показано с 1 по 5 из 5

Тема: Склейка byte в int с редактированием

  1. #1

    По умолчанию Склейка byte в int с редактированием

    Добрый день.

    Нужно из нескольких байт (например из двух) выбрать нужные биты, например с 5 по 15 и преобразовать выбранное в INT. Подскажите, как это лучше сделать?

  2. #2
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,582

    По умолчанию

    В библиотеках есть PACK, UNPACK, заводите необходимые биты и получайте результат.
    Или вам необходимо, чтобы с 5 по 15 биты так и остались с 5 по 15 но то, что до них стало нулями ? тогда банально AND применять с битовой маской.

  3. #3
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Сдвиг, сумма, сдвиг, маска.
    Ну или в префиксно-инфиксных терминах маска от сдвига суммы со сдвигом))
    Код:
    i := SHR(b1 + SHL(BYTE_TO_INT(b2), 8), 5) AND 2#0000001111111111;
    Хз чё оно не компилится, домой пора ехать.

  4. #4
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,224

    По умолчанию

    Цитата Сообщение от Yegor Посмотреть сообщение
    Сдвиг, сумма, сдвиг, маска.
    Ну или в префиксно-инфиксных терминах маска от сдвига суммы со сдвигом))
    Код:
    i := SHR(b1 + SHL(BYTE_TO_INT(b2), 8), 5) AND 2#0000001111111111;
    Хз чё оно не компилится, домой пора ехать.
    может в ИНТ не надо было конвертировать, а в ворд
    Bad programmers worry about the code. Good programmers worry about data structures and their relationships

    среди успешных людей я не встречала нытиков
    Барбара Коркоран

  5. #5

    По умолчанию

    Спасибо за подсказки. Склеил байты через указатели, а потом применил AND с битовой маской.

Похожие темы

  1. Упаковка переменных BOOL, INT, REAL в Modbus String
    от ПРОЕКТ-П в разделе ПЛК1хх
    Ответов: 15
    Последнее сообщение: 20.04.2015, 22:09
  2. Ответов: 2
    Последнее сообщение: 10.11.2014, 16:33
  3. СМИ2, int/word, показывает от 256
    от Туман в разделе Эксплуатация
    Ответов: 7
    Последнее сообщение: 26.02.2014, 10:37
  4. вопрос по переменной INT
    от service в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 13.05.2013, 17:10
  5. Ответов: 4
    Последнее сообщение: 25.12.2007, 10:56

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •