Просмотр полной версии : Склейка byte в int с редактированием
Добрый день.
Нужно из нескольких байт (например из двух) выбрать нужные биты, например с 5 по 15 и преобразовать выбранное в INT. Подскажите, как это лучше сделать?
В библиотеках есть PACK, UNPACK, заводите необходимые биты и получайте результат.
Или вам необходимо, чтобы с 5 по 15 биты так и остались с 5 по 15 но то, что до них стало нулями ? тогда банально AND применять с битовой маской.
Сдвиг, сумма, сдвиг, маска.
Ну или в префиксно-инфиксных терминах маска от сдвига суммы со сдвигом))
i := SHR(b1 + SHL(BYTE_TO_INT(b2), 8), 5) AND 2#0000001111111111;Хз чё оно не компилится, домой пора ехать.
Сдвиг, сумма, сдвиг, маска.
Ну или в префиксно-инфиксных терминах маска от сдвига суммы со сдвигом))
i := SHR(b1 + SHL(BYTE_TO_INT(b2), 8), 5) AND 2#0000001111111111;Хз чё оно не компилится, домой пора ехать.
может в ИНТ не надо было конвертировать, а в ворд
Спасибо за подсказки. Склеил байты через указатели, а потом применил AND с битовой маской.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot