2014-02-19 2 views
2

В MATLAB R2011b невозможно обработать бит и операцию, если какое-либо из чисел отрицательно. В Java это будет примерно так: -25 & 15 = 7. Как можно получить что-то подобное в MATLAB? Пробовал преобразовать в uint32 перед операцией, но uint32(-25) = 0 в MATLAB.Операция BIT-AND с отрицательными целыми числами

ответ

3

Вы можете использовать bitand операцию:

intout = bitand(-25, 7, 'int32') 

На R2011b, -25 является побитовое эквивалентно (2^32)-25, если вы считаете uint32. Итак, вы можете попробовать:

intout = int32((2^32 - 25) & 7) 
+0

'Ошибка использования бит и Входы должны быть целыми неотрицательными. ' Вот что я говорю. =) –

+0

Я отредактировал свой ответ, чтобы добавить '' 'int32''' в качестве типа. Пожалуйста, подтвердите, что он работает :) –

+0

Прошу прощения, но эта функция была введена только с Matlab 2012b, в 2011b она имеет только два входных аргумента. =) –

Смежные вопросы