Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-1126022890
-Саша-
2005-09-06 20:08
2005.10.02
VMware Workstation Problems


2-1124617243
NikNet
2005-08-21 13:40
2005.10.02
Помогите узнать какие биты, выловлены, а какие нет?


4-1123335339
Zahar
2005-08-06 17:35
2005.10.02
Как выполнить команду SHELL-a?


14-1126504704
TUser
2005-09-12 09:58
2005.10.02
Накормить народ не трудно, Если топоры в руках. :))


14-1126283034
Santrope
2005-09-09 20:23
2005.10.02
Где можно прочитать про кртриджи?