Целое число со знаком на 5 бит? - PullRequest
1 голос
/ 23 января 2012

Я все еще борюсь с побитовыми операторами, использующими Ruby.

Получая значение 11100 (28 в базе 10) (из потока битов), я хотел бы видеть его как -4, то есть целое число со знаком в 5 битах.

Как бы вы поступили?

Я знаю, что общий псевдоалгоритм говорит: -X = "/ X +1" то есть: чтобы получить противоположность X, сначала перевернуть биты X, а затем увеличить на 1. Но здесь я застрял!

1 Ответ

2 голосов
/ 23 января 2012

Если самый левый бит равен 1, то это отрицательное число.

Поэтому возьмите 28 и вычтите 32 (2 ^ 5), чтобы получить -4.

Но -2быть 11110

...