| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Обработка битов |
| Автор: jsa 21.5.2007, 12:50 |
| Hi All есть целое число например 184, в двоичке 10111000, как проверить что 8 бит это еденица, а 7 - ноль, вообще не доганяю |
| Автор: Metal_Heart 21.5.2007, 13:04 | ||
Такие элементарные вещи спрашивать
Возможны синтаксические ошибки. Показал только идею, остальное - догадайся сам! |
| Автор: jsa 21.5.2007, 13:12 | ||
т.е. если мне нужно проверить 7 бит то нужно
вроде так, но почему именно так? плз, разъясните теорию |
| Автор: Metal_Heart 21.5.2007, 14:35 |
| 2^0 = 1 (- 1 бит) 2^1 = 2 (- 2 бит) ... 2^6 = 40h (- 7 бит) 2^7 = 80h (- 8 бит) см. на степень и + 1 к ней .. |
| Автор: nornad 21.5.2007, 14:48 |
Почитай про битовую логику. |
| Автор: batigoal 21.5.2007, 17:25 |
Логика такая: Исходное число: 156 (в десятичной) = 10011100 (в двоичной) Допустим, мы хотим проверить седьмой бит. Тогда мы используем маску 01000000 (в шестнадцатеричной - 0x80). При использовании логической оперпации И, биты, пересекшиеся с 0, будут сброшены, а с 1 - оставлены неизмененными: 10011100 + 01000000 = 00000000 (или просто 0, т.е. false) Для проверки пятого бита используем 00010000 (0х10): 10011100 + 00010000 = 00010000 (16, т.е. true) |
| Автор: jsa 22.5.2007, 03:54 |
| batigoal, большое сенькс |
| Автор: olegrolik 22.5.2007, 09:11 | ||
Самый простой вариант (имхо) такой: Проверка бита (bit) в числе (value) на наличие единицы.
|
| Автор: chief39 22.5.2007, 12:22 |
В джаве такого нет воид не очень вяжется с ретурном Но мысль наглядная |
| Автор: olegrolik 22.5.2007, 13:52 | ||
Да Имелась ввиду конечно же мысль. |