![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Шестнадцатиричные числа
stef © (2005-11-14 06:45:00)Задача состоит в следующем:
Нужно проанализировать каждый разряд шестнадцатиричного (именно 16-ричного)числа отдельно друг от друга.
Имеется переменная типа TColorи в ее первых слева двух разрядах хранится показатель, который мне и нужно достать.
Предполагал перевести число в строку и так с ним работать, но похоже, что либо руки кривые либо что-то здесь не так.
Попробовал разобраться с функциейHexToBin, но с англицким плохо.
А функцияIntToHexиз модуля SysUtils вообще работает не так как ей следовало бы из названия.
Подскажите, может компонент какой или функцию, или уж точно самому писать?
А сам пробовал через нетипизированный указатель, но тоже не получилось.
Anatoly Podgoretsky (2005-11-14 09:05:00) [1]stef © (14.11.05 06:52) [1]
if qwe[1]=$1 then ...<Цитата>
if qwe[2]=$a then ...
Данная конструкция с успехом заменяется на
if (LongRec(qwe).Bytes[1]=1) and (LongRec(qwe).Bytes[2]=$0A) then ...
Если ты ничего не перепутал в своем путаном объяснении.
MBo (2005-11-14 07:41:00) [2]>Пользовались ли вы когданибудь функциями inttohex и hextobin, что это такое то?
Первое - функция для строкового представления чисел в 16-ричном виде, второе - обратное преобразование, как недвусмысленно описано в хелпе?
stef (2005-11-14 07:15:00) [3]Не ожидал, такого быстрого ответа.
> MBo © (14.11.05 07:08) [3]
про нумерацию то я знаю, спасибо огромное. А shr это функция сдвига вправо, так?
Пользовались ли вы когданибудь функциями inttohex и hextobin, что это такое то?
MBo (2005-11-14 07:08:00) [4]Не помешает прочитать какую-либо книжку.
Получение n-го (справа, нумерация с нуля) "разряда":
(qwe shr (4*n)) and $f
ЮЮ (2005-11-14 07:07:00) [5]if qwe and $10000000 = $10000000
if qwe and $0A000000 = $0A000000
stef (2005-11-14 06:52:00) [6]Чтоб точно никаких сомнений не осталось поясню:
есть переменная qwe (qwe:TColor), еt необходимо разделить на разряды, и взависимости от значения допустим первого разряда выполнять действия.
типа так:
if qwe[1]=$1 then ...
if qwe[2]=$a then ...