Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Внизустановка/сброс бита Найти похожие ветки
← →
F$ (2010-03-23 14:32) [0]
procedure TForm8.Button3Click(Sender: TObject);
var
N: Integer;
A: packed array [0..3] of Byte absolute N;
Res: Integer absolute A;
begin
N := 76;
A[0] := A[0] or $80;
A[0] := A[0] or $40;
ShowMessage(BoolToStr(A[0] and $80 = $80) + #13#10 +
BoolToStr(A[0] and $40 = $40));
A[0] := A[0] and (-1 xor $40);
A[0] := A[0] and (-1 xor $80);
ShowMessage(BoolToStr(A[0] and $80 = $80) + #13#10 +
BoolToStr(A[0] and $40 = $40));
Почему Res возвращает вместо 76 - 12? Что нет так? Ведь по сути установил бит/сбросил должно вернуть 76.
ShowMessage(IntToStr(Res));
end;
← →
MBo © (2010-03-23 14:44) [1]шестой бит ($40 = 64) в числе 76 был установлен изначально, а в конце его ты безусловно сбросил
← →
Anatoly Podgoretsky © (2010-03-23 14:56) [2]> F$ (23.03.2010 14:32:00) [0]
А где начальная инициализация A[0]
← →
F$ (2010-03-23 14:57) [3]подскажите как сделать нижеописанное, а то я совсем запутался с битами. Нужно для байта установить биты ($80,$40). Дальше записать изменненный байт в стрим. Далее считать байт со стрима и и проверить установки битов.
← →
F$ (2010-03-23 15:01) [4]в дополнение:
в итоге если 1 бит установлен выводим ShowMessage("$80") или ShowMessage("$40")
иначе ShowMessage("$80, $40").
> А где начальная инициализация A[0]
Дак вроде как, если задали N, то по сути проинициализировали A[0].
← →
Anatoly Podgoretsky © (2010-03-23 15:11) [5]
> Дак вроде как, если задали N, то по сути проинициализировали
> A[0].
Ааааааа
Так у тебя цепочка absolute
Не надо использовать его вообще. Ведь есть же LongRec
← →
Sha © (2010-03-23 15:13) [6]> совсем запутался с битами.
> Нужно для байта установить биты ($80,$40)
var
b: byte;
begin
....
b:=b or $C0;
....
end;
> Дальше записать изменненный байт в стрим.
> Далее считать байт со стрима и и проверить установки битов.
Если со стримом тоже запутался, задай вопрос в другой ветке.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.059 c