Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2014, 18:57   #1
Celestia
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 68
Восклицание Создание чисел из битов

Вот такая интересная задача встала

есть
Код:
    
Data1: Smallint ; // 16 bit
Data2: Byte;      // 8 bit

всего 24 бита выходит
надо из Data1 и Data2 получить два integer числа причём первый интегер берёт 20 бит а второй 4 бита. Как реализовать?

(ЗЫ: кому интересно зачем мне это- разбираю стимовский ID 64 битный)
Celestia вне форума Ответить с цитированием
Старый 26.12.2014, 19:22   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

i1:=Word(Data1)+(Data2 and $0F) shl 16;
i2:=Data2 shr 4;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.12.2014, 19:44   #3
Celestia
Пользователь
 
Регистрация: 03.11.2010
Сообщений: 68
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
i1:=Word(Data1)+(Data2 and $0F) shl 16;
i2:=Data2 shr 4;
большое спасибо!
Celestia вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ввести 10 чисел. Подсчитать сколько среди них однозначных чисел, двухзначных чисел, трехзначных чисел. Olzhakesh Общие вопросы по Java, Java SE, Kotlin 3 14.12.2014 20:27
Реверс битов SPBcore Помощь студентам 2 16.12.2010 19:34
Создание игры на угадывание чисел. Semen064 Помощь студентам 7 15.06.2009 17:09