Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.07.2009, 14:25
Antik163rus Antik163rus вне форума
Прохожий
 
Регистрация: 11.09.2008
Сообщения: 33
Репутация: 10
По умолчанию Двоичная система

День добрый Уважаемые форумчане!
Есть прога. С помощью нее я получаю данные. число приходит в виде числа в двоичной системе счисления. Как мне узнать, что находится в 7разряде: 0 или 1? ну или в любом другом. Например, "если в 4 разряде 1 то делать так, а иначе так".
Ответить с цитированием
  #2  
Старый 06.07.2009, 14:31
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

На то есть битовые маски. Например, чтобы узнать, что в четвертом разряде, нужно «наложить» маску 00001000=8.
Пример. Исследуем переменную Variable.
Код:
if Variable and 8 = 8 then ShowMessage('В четвертом разряде 1')
else ShowMessage('В четвертом разряде 0');
Ответить с цитированием
  #3  
Старый 06.07.2009, 14:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,029
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Допустим, у тебя приходят байты (тип byte)
тогда:

Код:
const
  Bit4 =  $00010000; // Четвертый справа, т.к. первый считается нулевым.

var
  InByte : Byte;
begin
  ...
  If (Byte And Bit4) <> 0 
    Then ... // Битик стоит
    Else ...; // Битик не стоит
Ответить с цитированием
  #4  
Старый 06.07.2009, 14:44
Nyctos Kasignete Nyctos Kasignete вне форума
Активный
 
Регистрация: 29.03.2009
Сообщения: 300
Репутация: 94
По умолчанию

lmikle, а разве ваша константа Bit4 — это то?
$00010000 = 10000000000000000b
Ответить с цитированием
  #5  
Старый 06.07.2009, 14:53
Antik163rus Antik163rus вне форума
Прохожий
 
Регистрация: 11.09.2008
Сообщения: 33
Репутация: 10
По умолчанию

Всем спасибо! ))
Ответить с цитированием
  #6  
Старый 08.09.2009, 22:59
smile1991 smile1991 вне форума
Прохожий
 
Регистрация: 08.09.2009
Сообщения: 1
Репутация: 10
По умолчанию

Народ отлично стреляете и полезно!!!
http://clientbase.ru
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:16.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter