Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

установка/сброс бита   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.45 MB
Время: 0.063 c
15-1267270379
Kerk
2010-02-27 14:32
2010.08.27
Про работу


2-1269838242
tippa
2010-03-29 08:50
2010.08.27
а чего он пищит?


15-1266830272
Игорь
2010-02-22 12:17
2010.08.27
Все что НЕ нужно начинающему программисту


15-1274214590
Юрий
2010-05-19 00:29
2010.08.27
С днем рождения ! 19 мая 2010 среда


15-1272339322
Девелопер
2010-04-27 07:35
2010.08.27
Свойства бинарника и директивы компилятора





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский