Текущий архив: 2005.10.02;
Скачать: CL | DM;
Вниз
Байты по битам Найти похожие ветки
← →
Lx © (2005-08-23 11:07) [0]Как можно в Delphi байт разделить на биты?
← →
Fay © (2005-08-23 11:12) [1]2 Lx © (23.08.05 11:07)
А как ты узнаешь, что уже "разделил"? По какому признаку?
Переформулируй вопрос.
← →
Плохиш © (2005-08-23 11:14) [2]HexToBin(IntToHex(......
← →
Zeqfreed © (2005-08-23 11:15) [3]Lx © (23.08.05 11:07)
http://podgoretsky.com/ftp/Docs/Delphi/Podgoretsky/bits.html
← →
begin...end © (2005-08-23 11:17) [4]> Плохиш © (23.08.05 11:14) [2]
Вы это к чему?
← →
Lx © (2005-08-23 11:20) [5]Народ, спасибо!
← →
Lx © (2005-08-23 11:21) [6]Удалено модератором
Примечание: Дубль
← →
Lx © (2005-08-23 11:22) [7]Удалено модератором
Примечание: Дубль
← →
Fay © (2005-08-23 11:23) [8]2 Zeqfreed © (23.08.05 11:15) [3]
О! Телепаты из отпусков возвращаются 8)
← →
Zeqfreed © (2005-08-23 11:27) [9]Fay © (23.08.05 11:23) [8]
=)
Думаю, что если человек прочитает эту статью, то потом сможет более корректно сформулировать вопрос; а если уж прочитает и вдумается в то, что прочитал, то, скорее всего, самостоятельно решит свой вопрос. Вот, собственно, и вся телепатия ;)
← →
Плохиш © (2005-08-23 11:58) [10]
> begin...end © (23.08.05 11:17) [4]
> > Плохиш © (23.08.05 11:14) [2]
>
> Вы это к чему?
к [0]
← →
begin...end © (2005-08-23 12:11) [11]> Плохиш © (23.08.05 11:58) [10]
И каким образом [2] может помочь разделить байт на биты?
В результате [2] получится фактически та же самая переменная Integer, только с обращённым порядком байт.
← →
Fay © (2005-08-23 12:15) [12]2 begin...end © (23.08.05 12:11) [11]
Раз уж пошла такая пьянка, скажите, что вАщЕ может помочь "разделить байт на биты"?!
8)
← →
begin...end © (2005-08-23 12:19) [13]> Fay © (23.08.05 12:15) [12]
Насколько я понял, имелось в виду выделение битов из байта, т.е. определение значений нужных битов. Возможно, я ошибаюсь.
Но я не думаю, что под этим подразумевалось обращение порядка байт некоторой переменной.
← →
Плохиш © (2005-08-23 12:28) [14]
> begin...end © (23.08.05 12:11) [11]
> В результате [2] получится фактически та же самая переменная
> Integer, только с обращённым порядком байт.
Странно, а в справке написано, что получится строковая переменная содержащая целое число в бинарном виде :-)
← →
begin...end © (2005-08-23 12:36) [15]> Плохиш © (23.08.05 12:28) [14]
Там не написано, что получится строковая переменная.
Там написано: Call HexToBin to convert the hexadecimal string Text to the binary value it represents. Насколько я понимаю, это означает следующее: на входе -- строка, содержащая шестнадцатеричное представление области памяти, на выходе -- соответствующее содержимое этой области памяти.
Так какое это имеет отношение к исходному вопросу?
← →
Плохиш © (2005-08-23 12:46) [16]
> содержащая шестнадцатеричное представление области памяти,
> на выходе -- соответствующее содержимое этой области памяти.
Брр, ничего не понял. Может ты лучше выполнить её попробуешь?
← →
Плохиш © (2005-08-23 12:49) [17]
> begin...end © (23.08.05 12:36) [15]
Кстати, рекомендую воспользоваться каким-нибуть переводчиком.
Вот, что сказал www.translate.ru: "Назовите HexToBin, чтобы преобразовать шестнадцатеричный Текст строки в двойное значение, которое это представляет"
← →
begin...end © (2005-08-23 12:53) [18]> Плохиш © (23.08.05 12:46) [16]
Может, Вы тоже попробуете?
Вот простой пример:var
Hex: string;
Bin: PChar;
Int: Integer;
begin
Hex := IntToHex(12345678, 8); // Hex = "00BC614E"
GetMem(Bin, 4);
try
HexToBin(PChar(Hex), Bin, 4);
Hex := IntToHex(PInteger(Bin)^, 8); // Hex = "4E61BC00"
finally
FreeMem(Bin)
end
end.
Что же получилось? По заданному шестнадцатеричному представлению IntToHex сформировала в памяти последовательность байтов. Чего и следовало ожидать -- это находится в полном соответствии со справкой.
Какое это имеет отношение к исходному вопросу, я так и не понял. Вероятно, никакого отношения и нет.
> Плохиш © (23.08.05 12:49) [17]
Спасибо, не надо.
← →
begin...end © (2005-08-23 12:56) [19]К [16]:
> По заданному шестнадцатеричному представлению IntToHex...
HexToBin, конечно же.
← →
Lx © (2005-08-23 12:59) [20]ну в двух словах ситуация такая: есть байт, допустим, из него надо выделить флаги, каждый флаг это 1 бит... например 1-значит запись о вызове, 0-не запись о вызове...
← →
Anatoly Podgoretsky © (2005-08-23 13:01) [21]Так тебе нужен анализ/проверка бита, в статье по ссылке это есть.
← →
Fay © (2005-08-23 13:01) [22]Lx © (23.08.05 12:59) [20]
if (n and 1) = 0 then
// False
else
// True
← →
Lx © (2005-08-23 13:25) [23]написано там:
if Value and (1 shl N) <> 0 then ... установлен
if Value and (1 shl N) = 0 then ... не установлен
только я не понял что есть Value, 1, n
← →
Lx © (2005-08-23 13:33) [24]уже разобрался вроде... не с первого захода)
← →
Fay © (2005-08-23 13:33) [25]2 Lx © (23.08.05 13:25) [23]
Value - твой байт
1 shl N - сдвигаем первый (нулевой) бит на N позиций влево (жми уже F1)
Value := 5;
n := 2;
Value and (1 shl N) -> 5 and 4 -> 00000101 and 00000100 = 00000100 <> 0 -> N-ный бит установлен -> Щястье
← →
Плохиш © (2005-08-23 14:24) [26]
> begin...end
Действительно автору не поможет. "the binary value" от $BC - это символ char($BC), никогда бы не подумал 8).
Страницы: 1 вся ветка
Текущий архив: 2005.10.02;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.038 c