Добрый день.
Нужно из нескольких байт (например из двух) выбрать нужные биты, например с 5 по 15 и преобразовать выбранное в INT. Подскажите, как это лучше сделать?
Добрый день.
Нужно из нескольких байт (например из двух) выбрать нужные биты, например с 5 по 15 и преобразовать выбранное в INT. Подскажите, как это лучше сделать?
В библиотеках есть PACK, UNPACK, заводите необходимые биты и получайте результат.
Или вам необходимо, чтобы с 5 по 15 биты так и остались с 5 по 15 но то, что до них стало нулями ? тогда банально AND применять с битовой маской.
Сдвиг, сумма, сдвиг, маска.
Ну или в префиксно-инфиксных терминах маска от сдвига суммы со сдвигом))Хз чё оно не компилится, домой пора ехать.Код:i := SHR(b1 + SHL(BYTE_TO_INT(b2), 8), 5) AND 2#0000001111111111;
Спасибо за подсказки. Склеил байты через указатели, а потом применил AND с битовой маской.