Работа с битами Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/rabota-s-bitami.feed 2022-09-13T04:33:26+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management Битовые множества 2013-10-01T21:15:06+07:00 2013-10-01T21:15:06+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/bitovye-mnozhestva.html Super User toto44@inbox.ru <p>В явном виде битовых множеств в языке Object Pascal нет. Но вместо этого можно использовать обычные множества, которые на самом деле и хранятся как битовые. Если множество вам нужно для проверки, установлен ли какой то бит в слове </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">PByteSet = ^TByteSet; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">TByteSet = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">set</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span><span class="f_CodeExample" style="color: #000000;"> Byte; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">W: Word; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">... </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ если бит 3 в слове W установлен, тогда ... }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> PByteSet(@W)^ </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> ... </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">... </span></p> </td> </tr> </tbody> </table> </div> <p> С Delphi 2.0 появился специальный класс TBitSet, который ведет себя как битовое множество.Для Delphi 1.0 вы можете написать такой класс самостоятельно.</p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p>https://delphiworld.narod.ru/</p> <p>DelphiWorld 6.0</p> <p> </p> <p>В явном виде битовых множеств в языке Object Pascal нет. Но вместо этого можно использовать обычные множества, которые на самом деле и хранятся как битовые. Если множество вам нужно для проверки, установлен ли какой то бит в слове </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">type</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">PByteSet = ^TByteSet; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">TByteSet = </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">set</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">of</span><span class="f_CodeExample" style="color: #000000;"> Byte; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">W: Word; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">... </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ если бит 3 в слове W установлен, тогда ... }</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #800000;">3</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">in</span><span class="f_CodeExample" style="color: #000000;"> PByteSet(@W)^ </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000000;"> ... </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">... </span></p> </td> </tr> </tbody> </table> </div> <p> С Delphi 2.0 появился специальный класс TBitSet, который ведет себя как битовое множество.Для Delphi 1.0 вы можете написать такой класс самостоятельно.</p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p>https://delphiworld.narod.ru/</p> <p>DelphiWorld 6.0</p> <p> </p> Двоичная математика 2013-10-01T21:14:00+07:00 2013-10-01T21:14:00+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/dvoichnaya-matematika.html Super User toto44@inbox.ru <p><span style="font-family: 'Arial'; color: #000000; font-size: 16pt; font-weight: bold;">Двоичная математика.</span></p> <p style="margin: 16px 0px 4px;"><span style="font-family: 'Arial'; color: #000000; font-size: 14pt; font-weight: bold;">Введение</span></p> <p style="text-align: justify; margin: 0px 0px 8px;"><span style="font-family: 'Times New Roman'; color: #000000;">Наряду с обычными логическими операция над логическими типами </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Boolean</span><span style="font-family: 'Times New Roman'; color: #000000;">, часто приходится выполнять операции и над отдельными битами, обычно используемыми, как флаги. Для эффективной работы необходимо понимание логических операций.</span></p> <p style="text-align: justify; margin: 0px 0px 8px;"><span style="font-family: 'Times New Roman'; color: #000000;">Паскаль поддерживает следующие логические операции </span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">AND</span><span style="font-family: 'Times New Roman'; color: #000000;">–</span><span style="font-family: 'Times New Roman'; color: #000000;"> логическое </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">И;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">OR</span><span style="font-family: 'Times New Roman'; color: #000000;"> - (включающие) логическое </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">ИЛИ;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">XOR </span><span style="font-family: 'Times New Roman'; color: #000000;">- (исключающие) логическое </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">ИЛИ;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">NOT - </span><span style="font-family: 'Times New Roman'; color: #000000;">отрицание или инверсия бита;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">SHL </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">–</span><span style="font-family: 'Times New Roman'; color: #000000;"> логический сдвиг влево;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">SHR</span><span style="font-family: 'Times New Roman'; color: #000000;">–</span><span style="font-family: 'Times New Roman'; color: #000000;"> логический сдвиг вправо.</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/dvoichnaya-matematika.html">Подробнее...</a></p> <p><span style="font-family: 'Arial'; color: #000000; font-size: 16pt; font-weight: bold;">Двоичная математика.</span></p> <p style="margin: 16px 0px 4px;"><span style="font-family: 'Arial'; color: #000000; font-size: 14pt; font-weight: bold;">Введение</span></p> <p style="text-align: justify; margin: 0px 0px 8px;"><span style="font-family: 'Times New Roman'; color: #000000;">Наряду с обычными логическими операция над логическими типами </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Boolean</span><span style="font-family: 'Times New Roman'; color: #000000;">, часто приходится выполнять операции и над отдельными битами, обычно используемыми, как флаги. Для эффективной работы необходимо понимание логических операций.</span></p> <p style="text-align: justify; margin: 0px 0px 8px;"><span style="font-family: 'Times New Roman'; color: #000000;">Паскаль поддерживает следующие логические операции </span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">AND</span><span style="font-family: 'Times New Roman'; color: #000000;">–</span><span style="font-family: 'Times New Roman'; color: #000000;"> логическое </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">И;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">OR</span><span style="font-family: 'Times New Roman'; color: #000000;"> - (включающие) логическое </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">ИЛИ;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">XOR </span><span style="font-family: 'Times New Roman'; color: #000000;">- (исключающие) логическое </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">ИЛИ;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">NOT - </span><span style="font-family: 'Times New Roman'; color: #000000;">отрицание или инверсия бита;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">SHL </span><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">–</span><span style="font-family: 'Times New Roman'; color: #000000;"> логический сдвиг влево;</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">SHR</span><span style="font-family: 'Times New Roman'; color: #000000;">–</span><span style="font-family: 'Times New Roman'; color: #000000;"> логический сдвиг вправо.</span></p> <p style="text-align: justify; margin: 0px 0px 8px 47px;"> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/dvoichnaya-matematika.html">Подробнее...</a></p> Как в байте информации выделить биты 2013-10-01T21:16:12+07:00 2013-10-01T21:16:12+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/kak-v-bajte-informatsii-vydelit-bity.html Super User toto44@inbox.ru <p>В Delphi используй операцию and, которая возвращает результат побитового умножения. Пример a and $10 — выделить 4-ый бит. Если результат не ноль — бит установлен.</p> <p> </p> <p>То же самое, но на ассемблере. Это позволяет достичь максимальной скорости выполнения.</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetBites(t, Mask: LongWord): LongWord; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">asm</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">mov eax, t;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> eax, mask;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/kak-v-bajte-informatsii-vydelit-bity.html">Подробнее...</a></p> <p>В Delphi используй операцию and, которая возвращает результат побитового умножения. Пример a and $10 — выделить 4-ый бит. Если результат не ноль — бит установлен.</p> <p> </p> <p>То же самое, но на ассемблере. Это позволяет достичь максимальной скорости выполнения.</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> GetBites(t, Mask: LongWord): LongWord; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">asm</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">mov eax, t;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> eax, mask;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/kak-v-bajte-informatsii-vydelit-bity.html">Подробнее...</a></p> Как работать с битами 2013-10-01T21:17:08+07:00 2013-10-01T21:17:08+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/kak-rabotat-s-bitami.html Super User toto44@inbox.ru <p>Есть два способа.</p> <p> Низкоуровневый подход обеспечивается логическими операциями : </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I : integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">N : integer; </span><span class="f_CodeExample" style="color: #000080;">// Номер бита в диапазоне от 0..SizeOf(TYPE)*8 - 1</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I := I </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N); </span><span class="f_CodeExample" style="color: #000080;">// установка бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I := I </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N); </span><span class="f_CodeExample" style="color: #000080;">// сброс бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I := I xor (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N); </span><span class="f_CodeExample" style="color: #000080;">// инверсия бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (i </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N)) &lt;&gt; </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;"> then... </span><span class="f_CodeExample" style="color: #000080;">// проверка установленного бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/kak-rabotat-s-bitami.html">Подробнее...</a></p> <p>Есть два способа.</p> <p> Низкоуровневый подход обеспечивается логическими операциями : </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I : integer;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">N : integer; </span><span class="f_CodeExample" style="color: #000080;">// Номер бита в диапазоне от 0..SizeOf(TYPE)*8 - 1</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I := I </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N); </span><span class="f_CodeExample" style="color: #000080;">// установка бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I := I </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N); </span><span class="f_CodeExample" style="color: #000080;">// сброс бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">I := I xor (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N); </span><span class="f_CodeExample" style="color: #000080;">// инверсия бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> (i </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;"> shl N)) &lt;&gt; </span><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;"> then... </span><span class="f_CodeExample" style="color: #000080;">// проверка установленного бита</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/kak-rabotat-s-bitami.html">Подробнее...</a></p> Переключение состояния бита с единицы на ноль и наоборот 2013-10-01T21:11:45+07:00 2013-10-01T21:11:45+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/pereklyuchenie-sostoyaniya-bita-s-edinitsy-na-nol-i-naoborot.html Super User toto44@inbox.ru <p> Переключение состояния бита с единицы на ноль и наоборот</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> BitToggle(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> val: longint; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> TheBit: byte): LongInt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := val </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">xor</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shl</span><span class="f_CodeExample" style="color: #000000;"> TheeBit);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/pereklyuchenie-sostoyaniya-bita-s-edinitsy-na-nol-i-naoborot.html">Подробнее...</a></p> <p> Переключение состояния бита с единицы на ноль и наоборот</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> BitToggle(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> val: longint; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> TheBit: byte): LongInt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := val </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">xor</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shl</span><span class="f_CodeExample" style="color: #000000;"> TheeBit);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/pereklyuchenie-sostoyaniya-bita-s-edinitsy-na-nol-i-naoborot.html">Подробнее...</a></p> Получение значения бита в двойном слове 2013-10-01T21:18:14+07:00 2013-10-01T21:18:14+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/poluchenie-znacheniya-bita-v-dvojnom-slove.html Super User toto44@inbox.ru <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ **** UBPFD *********** by delphibase.endimus.com ****</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">&gt;&gt; Получение значения бита в двойном слове</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Функция возвращает значение бита с номером Index в двойном слове Value</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Зависимости: нет</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Автор: Dimka Maslov, mainbox@ endimus. ru, ICQ:148442121, Санкт-Петербург</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Copyright: Dimka Maslov</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Дата: 21 мая 2002 г.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">***************************************************** }</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Bit(Value, </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Index</span><span class="f_CodeExample" style="color: #000000;">: Integer): Boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">asm</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> bt eax, edx</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> setc al</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> eax, 0FFh</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <div style="text-align: left; text-indent: 0px; margin: 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{ **** UBPFD *********** by delphibase.endimus.com ****</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">&gt;&gt; Получение значения бита в двойном слове</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Функция возвращает значение бита с номером Index в двойном слове Value</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Зависимости: нет</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Автор: Dimka Maslov, mainbox@ endimus. ru, ICQ:148442121, Санкт-Петербург</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Copyright: Dimka Maslov</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">Дата: 21 мая 2002 г.</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">***************************************************** }</span></p> <p class="p_CodeExample"> </p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> Bit(Value, </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">Index</span><span class="f_CodeExample" style="color: #000000;">: Integer): Boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">asm</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> bt eax, edx</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;"> setc al</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> eax, 0FFh</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> Пример чтения данных по битовой маске из значения 2013-10-01T21:12:43+07:00 2013-10-01T21:12:43+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/primer-chteniya-dannykh-po-bitovoj-maske-iz-znacheniya.html Super User toto44@inbox.ru <p>Пример чтения данных по битовой маске из значения:</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Col: Word = </span><span class="f_CodeExample" style="color: #800000;">$ABCD</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">R,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">G,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">B: Byte;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">R := Byte(Col </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shr</span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">; </span><span class="f_CodeExample" style="color: #000080;">// первые 5 бит</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">G := ((Byte(Col </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shr</span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #800000;">$7</span><span class="f_CodeExample" style="color: #000000;">) * </span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> (Byte(Col) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">$20</span><span class="f_CodeExample" style="color: #000000;">); </span><span class="f_CodeExample" style="color: #000080;">// Вторые 6 бит</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">B := Byte(Col) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #800000;">$1F</span><span class="f_CodeExample" style="color: #000000;">; </span><span class="f_CodeExample" style="color: #000080;">// третьи 5 бит</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p>  <span style="font-family: 'Times New Roman';">Автор ответа: Rouse_ </span></p> <p style="text-align: left;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято из </span><span style="color: #0000ff; font-size: 10pt; font-weight: bold; text-decoration: underline;">https://forum.sources.ru</span></p> <p>Пример чтения данных по битовой маске из значения:</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">procedure</span><span class="f_CodeExample" style="color: #000000;"> TForm1.Button1Click(Sender: TObject);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Col: Word = </span><span class="f_CodeExample" style="color: #800000;">$ABCD</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">R,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">G,</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">B: Byte;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">R := Byte(Col </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shr</span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">; </span><span class="f_CodeExample" style="color: #000080;">// первые 5 бит</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">G := ((Byte(Col </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shr</span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #800000;">$7</span><span class="f_CodeExample" style="color: #000000;">) * </span><span class="f_CodeExample" style="color: #800000;">8</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> (Byte(Col) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">div</span><span class="f_CodeExample" style="color: #800000;">$20</span><span class="f_CodeExample" style="color: #000000;">); </span><span class="f_CodeExample" style="color: #000080;">// Вторые 6 бит</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">B := Byte(Col) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #800000;">$1F</span><span class="f_CodeExample" style="color: #000000;">; </span><span class="f_CodeExample" style="color: #000080;">// третьи 5 бит</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p>  <span style="font-family: 'Times New Roman';">Автор ответа: Rouse_ </span></p> <p style="text-align: left;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято из </span><span style="color: #0000ff; font-size: 10pt; font-weight: bold; text-decoration: underline;">https://forum.sources.ru</span></p> Проверка значения бита 2013-10-01T21:03:30+07:00 2013-10-01T21:03:30+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/proverka-znacheniya-bita.html Super User toto44@inbox.ru <p>Проверка - установлен ли определенный бит?</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> IsBitSet(Value: cardinal; BitNum : byte): boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result:=((Value </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shr</span><span class="f_CodeExample" style="color: #000000;"> BitNum) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) = </span><span class="f_CodeExample" style="color: #800000;">1</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">...</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> IsBitSet(</span><span class="f_CodeExample" style="color: #800000;">43691</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000080;">//установлен (равен 1)</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/proverka-znacheniya-bita.html">Подробнее...</a></p> <p>Проверка - установлен ли определенный бит?</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> IsBitSet(Value: cardinal; BitNum : byte): boolean;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">result:=((Value </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shr</span><span class="f_CodeExample" style="color: #000000;"> BitNum) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) = </span><span class="f_CodeExample" style="color: #800000;">1</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">...</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> IsBitSet(</span><span class="f_CodeExample" style="color: #800000;">43691</span><span class="f_CodeExample" style="color: #000000;">,</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #000000;">) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span><span class="f_CodeExample" style="color: #000080;">//установлен (равен 1)</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/proverka-znacheniya-bita.html">Подробнее...</a></p> Установка бита в единицу 2013-10-01T21:07:00+07:00 2013-10-01T21:07:00+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/ustanovka-bita-v-edinitsu.html Super User toto44@inbox.ru <p>Установка бита в единицу</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> BitOn(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> val: longint; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> TheBit: byte): LongInt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := val </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shl</span><span class="f_CodeExample" style="color: #000000;"> TheBit);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/ustanovka-bita-v-edinitsu.html">Подробнее...</a></p> <p>Установка бита в единицу</p> <p> </p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> BitOn(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> val: longint; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> TheBit: byte): LongInt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := val </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">or</span><span class="f_CodeExample" style="color: #000000;"> (</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shl</span><span class="f_CodeExample" style="color: #000000;"> TheBit);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/ustanovka-bita-v-edinitsu.html">Подробнее...</a></p> Установка бита в ноль 2013-10-01T21:10:36+07:00 2013-10-01T21:10:36+07:00 https://delphi-hlp.ru/index.php/rabota-s-bitami/ustanovka-bita-v-nol.html Super User toto44@inbox.ru <p>Установка бита в ноль</p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> BitOff(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> val: longint; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> TheBit: byte): LongInt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := val </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> ((</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shl</span><span class="f_CodeExample" style="color: #000000;"> TheBit) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">xor</span><span class="f_CodeExample" style="color: #800000;">$FFFFFFFF</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p> <span style="font-family: 'Times New Roman';">Автор ответа: s-mike </span></p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято из </span><span style="color: #0000ff; font-size: 10pt; font-weight: bold; text-decoration: underline;">https://forum.sources</span></p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/ustanovka-bita-v-nol.html">Подробнее...</a></p> <p>Установка бита в ноль</p> <div style="text-align: justify; text-indent: 0px; margin: 7px 0px; padding: 0px;"> <table style="border-bottom: #c0c0c0 1px solid; border-left: #000000 1px solid; background-color: #ffffc4; border-spacing: 0px; border-top: #000000 1px solid; border-right: #c0c0c0 1px solid;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p style="text-align: justify;"><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-bottom: #000000 1px solid; border-left: #c0c0c0 1px solid; border-top: #c0c0c0 1px solid; border-right: #000000 1px solid;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">function</span><span class="f_CodeExample" style="color: #000000;"> BitOff(</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> val: longint; </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">const</span><span class="f_CodeExample" style="color: #000000;"> TheBit: byte): LongInt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080;">{©Drkb v.3(2007): www.drkb.ru}</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">Result := val </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">and</span><span class="f_CodeExample" style="color: #000000;"> ((</span><span class="f_CodeExample" style="color: #800000;">1</span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">shl</span><span class="f_CodeExample" style="color: #000000;"> TheBit) </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">xor</span><span class="f_CodeExample" style="color: #800000;">$FFFFFFFF</span><span class="f_CodeExample" style="color: #000000;">);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p> <span style="font-family: 'Times New Roman';">Автор ответа: s-mike </span></p> <p style="text-align: right;"><span style="font-family: 'Arial Unicode MS', 'Lucida Sans Unicode', 'Arial'; color: #ff6600; font-size: 8pt; font-weight: bold;"> </span></p> <p><span style="font-family: 'Times New Roman'; color: #000000; font-weight: bold;">Взято из </span><span style="color: #0000ff; font-size: 10pt; font-weight: bold; text-decoration: underline;">https://forum.sources</span></p> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/rabota-s-bitami/ustanovka-bita-v-nol.html">Подробнее...</a></p>