Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.023 c
14-1126598979
КаПиБаРа
2005-09-13 12:09
2005.10.02
Математическо-токарная задачка


3-1124435578
kyn66
2005-08-19 11:12
2005.10.02
Как поступить правильно, соблюдая каноны программирования?


4-1122926402
murtix
2005-08-02 00:00
2005.10.02
Работа с BlueTooth


4-1123590330
ocean
2005-08-09 16:25
2005.10.02
Как поймать выключение компьютера?


1-1126526379
Lamka
2005-09-12 15:59
2005.10.02
Присвоение объектов




   Наверх