![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Байты и Биты [D6, WinXP]
ZMaximI © (2004-01-23 13:30:00)Добрый день !
Уважаемые мастера, помогите пожалуйста
как байт уидеть в битах, чтобы с ними можно было работать, как с цифрами
Заранее благодарен.
С уважением, Максим.
panov (2004-03-12 15:14:00) [1]Если интересно - возьми класс для работы с битами по адресу у меня в инфе и разберись.
Guest (2004-03-12 14:20:00) [2]function Digit(val: integer; num: integer):integer;
begin
digit:=(val and (1 shl num));
end;
procedure ByteToBit(NUMBER : integer; NumBit : integer);
var
str : string;
begin
str:='';
while true do
begin
if(digit(NUMBER,NumBit)<>0) then str:=str+'1' else str:=str+'0';
if (NumBit=0) then break;
Dec(NumBit);
end;
end;
at (2004-03-11 19:31:00) [3]прошу прощения под SizeOf подразумевалось SizeOf()*8
at (2004-03-11 19:26:00) [4]
function GET_BIT(Data :DWORD; Shift :integer) :integer;
begin
if (Shift >= 0) and (Shift < SizeOf(DWORD)) then
Result := (Data shr Shift) and 1
else
Result := -1;
end;
function SET_BIT(Data :DWORD; Shift :integer; Value :DWORD) :DWORD;
begin
if (Shift >= 0) and (Shift < SizeOf(DWORD)) then
begin
Value := Value and 1;
Data := Data and (not (1 shl Shift));
Result := Data or (Value shl Shift);
end else
Result := Data;
end;
tesseract (2004-03-11 18:04:00) [5]begin
for i:=1 to 8 do
begin
if Odd(MyByte) then result:='1'+result else result:
='0'+result;
MyByte:=MyByte shr 1;
end;
усё Ж-)
Polevi (2004-03-11 12:23:00) [6]мдя
MU (2004-03-11 11:59:00) [7]Classes
function HexToBin(Text, Buffer: PChar; BufSize: Integer): Integer;
Guest (2004-03-11 11:56:00) [8]что такое вахабайт - восемь вахабитов...8)
SammIk (2004-03-01 21:23:00) [9]Я тут статью накидал, если цензура допустит, то ее выпустят
как раз про биты
YurikGl (2004-03-01 19:35:00) [10]Остаток от деления на два - младший бит. потом целочисленное деление на два. Еще раз остаток от деления на 2 - второй бит, целочисленное деление на 2 и т.д.
Reindeer Moss Eater (2004-01-23 13:49:00) [11]if (MyByte and 1) = 1 then ShowMessage('Самый младший бит в байте поднят');
Reindeer Moss Eater (2004-01-23 13:44:00) [12]А сейчас ты с ними как с буквами работаешь?