Áèòîâûå îïåðàöèè Âñå ÷èñëà õðàíÿòñÿ â ïàìÿòè êîìïüþòåðà â äâîè÷íîé ñèñòåìå ñ÷èñëåíèÿ. Ïîýòîìó â áîëüøèíñòâå ÿçûêîâ ïðîãðàììèðîâàíèÿ èìåþòñÿ ñïåöèàëüíûå îïåðàöèè äëÿ öåëûõ ÷èñåë, ðàáîòàþùèå ñ èõ äâîè÷íûì ïðåäñòàâëåíèåì. Ýòè îïåðàöèè íàçûâàþòñÿ ïîáèòîâûìè, ïîñêîëüêó ïðîèçâîäÿò îäíè è òå æå äåéñòâèÿ íàä âñåìè áèòàìè îïåðàíäîâ.  ÿçûêå Pascal áèòîâûå îïåðàöèè, ñîîòâåòñòâóþùèå ëîãè÷åñêèì îïåðàöèÿì, íàçûâàþòñÿ òàêæå, êàê è ñîîòâåòñòâóþùèå ëîãè÷åñêèå îïåðàöèè. Êîìïèëÿòîð ïîíèìàåò, êàêàÿ îïåðàöèÿ (áèòîâàÿ èëè ëîãè÷åñêàÿ) èìååòñÿ â âèäó, ñìîòðÿ ïî òîìó, ê êàêèì îïåðàíäàì îíà ïðèìåíÿåòñÿ. Åñëè ýòè îïåðàíäû èìåþò ëîãè÷åñêèé òèï boolean, òî è îïåðàöèÿ áóäåò ëîãè÷åñêàÿ; åñëè æå îïåðàíäû öåëûå ÷èñëà, òî îïåðàöèÿ áóäåò áèòîâàÿ. Íàïðèìåð, ïðîñòåéøàÿ áèòîâàÿ îïåðàöèÿ áèòîâîå îòðèöàíèå, îáîçíà÷àåòñÿ òàê æå, êàê è ëîãè÷åñêîå îòðèöàíèå, not. Ñìûñë áèòîâîãî îòðèöàíèÿ â òîì, ÷òî ê êàæäîìó áèòó, ò. å. ê êàæäîé äâîè÷íîé öèôðå îïåðàíäà ïðèìåíÿåòñÿ îïåðàöèÿ ëîãè÷åñêîãî îòðèöàíèÿ (0 ñ÷èòàåòñÿ çà ëîæü, 1 çà èñòèíó), ò. å. îáðàçóåòñÿ íîâîå ÷èñëî, êàæäàÿ äâîè÷íàÿ öèôðà êîòîðîãî îïðåäåëÿåòñÿ ñëåäóþùèì ïðàâèëîì: åñëè äâîè÷íàÿ öèôðà â òîé æå ïîçèöèè ó èñõîäíîãî ÷èñëà áûëà 0, òî ó ðåçóëüòàòà áèòîâîãî îòðèöàíèÿ îíà áóäåò 1 è íàîáîðîò, åñëè áûëà 1, òî ó ðåçóëüòàòà áóäåò 0. Åñëè èñõîäíîå ÷èñëî â äâîè÷íîé ñèñòåìå çàïèñûâàëîñü êàê 0011010111, òî ðåçóëüòàò áèòîâîãî îòðèöàíèÿ áóäåò 1100101000. Òàêæå èìåþòñÿ îïåðàöèè áèòîâîãî è (and) è èëè (or). Ñìûñë ýòèõ îïåðàöèé â òîì, ÷òî äâîè÷íàÿ öèôðà ðåçóëüòàòà â êàæäîé ïîçèöèè îïðåäåëÿåòñÿ êàê ðåçóëüòàò ñîîòâåòñòâóþùåé ëîãè÷åñêîé îïåðàöèè, ïðèìåíåííîé ê äâîè÷íûì öèôðàì îïåðàíäîâ â òîé æå ïîçèöèè. Íàïðèìåð, 001100011110 and 111001111100 áóäåò 001000011100. Êðîìå áèòîâûõ àíàëîãîâ ëîãè÷åñêèõ îïåðàöèé, èìåþòñÿ åùå äâå âåñüìà ïîëåçíûå îïåðàöèè, èìåþùèå äåëî ñ áèòàìè. Ýòî îïåðàöèè áèòîâîãî ñäâèãà. Áèòîâûé ñäèã âëåâî îáîçíà÷àåòñÿ shl, âïðàâî shr. Êàæäàÿ èç ýòèõ îïåðàöèé ïðèíèìàåò äâà îïåðàíäà öåëûõ ÷èñëà. Ëåâûé îïåðàíä òî ÷èñëî, êîòîðîå íàäî ñäâèãàòü, à ïðàâûé ÷èñëî ïîçèöèé, íà êîòîðîå íóæíî ñäâèíóòü ëåâûé îïåðàíä. Ñìûñë ñäâèãîâ â òîì, ÷òîáû ïåðåìåñòèòü áèòû óêàçàííîãî ÷èñëà íà îïðåäåëåííîå ÷èñëî ïîçèöèé â çàäàííóþ ñòîðîíó. Íàïðèìåð, 0000011000101111 shl 3 áóäåò 0011000101111000. Äëÿ íå î÷åíü áîëüøèõ íåîòðèöàòåëüíûõ ÷èñåë ñäâèã âëåâî íà n ïîçèöèé ýòî ïðîñòî óìíîæåíèå ÷èñëà íà 2n . Àíàëîãè÷íî, ñäâèã âïðàâî íåïîëíîå ÷àñòíîå îò äåëåíèÿ íà ñîîòâåòñòâóþùóþ ñòåïåíü äâîéêè. Òàêæå, â ñâÿçè ñ áèòîâûìè îïåðàöèÿìè ïîëåçíî çíàòü ïðåäñòàâëåíèå îòðèöàòåëüíûõ ÷èñåë. Îòðèöàòåëüíûå ÷èñëà ïðåäñòàâëÿþòñÿ ïðîñòî ïî ìîäóëþ ñîîòâåòñòâóþùåé ñòåïåíè äâîéêè (ïîêàçàòåëü êîòîðîé ðàâåí êîëè÷åñòâó îòâîäèìûõ ïîä öåëîå ÷èñëî áèòîâ). Ïîýòîìó (äîêàæèòå!) äëÿ öåëîãî ÷èñëà x ñïðàâåäëèâà ôîðìóëà -x=1+not x, ãäå not ïîáèòîâîå îòðèöàíèå. Òàê êàê ïîáèòîâîå îòðèöàíèå èíîãäà íàçûâàåòñÿ äîïîëíåíèåì äî åäèíèöû (êàæäîãî äâîè÷íîãî ðàçðÿäà), òî òàêîå ïðåäñòàâëåíèå îòðèöàòåëüíûõ ÷èñåë íàçûâàåòñÿ äîïîëíåíèåì äî äâóõ. Ïðèìåðû. Ñíà÷àëà íàïèøåì âûðàæåíèå, äàþùåå ðåçóëüòàò 2n äëÿ öåëîé ïåðåìåííîé n. Îíî î÷åâèäíî: 1 shl n. Äàëåå íàïèøåì âûðàæåíèå, äàþùåå çíà÷åíèå áèòà íà ïîçèöèè i â ÷èñëå n (ò. å. äâîè÷íóþ öèôðó ÷èñëà n, ñîîòâåòñòâóþùåå i-é ñòåïåíè äâîéêè): (n and (1 shl i)) shr i. Äàëåå, íàïèøåì âûðàæåíèå, äàþùåå ÷èñëî, îòëè÷àþùååñÿ îò çàäàííîãî ÷èñëà n òîëüêî òåì, ÷òî íà i-é ïîçèöèè ñòîèò ãàðàíòèðîâàííî íóëåâîé áèò (à åñëè â ÷èñëå n îí è òàê íóëåâîé, òî îòâåò ñîâïàäàåò ñ n): n and not (1 shl i). Íàêîíåö, ïîñëåäíèé ïðèìåð óñòàíîâèòü i-é áèò ÷èñëà n â 1: n or (1 shl i). Çàäà÷è. 1. Âûâåñòè äâîè÷íîå ïðåäñòàâëåíèå öåëîãî ïîëîæèòåëüíîãî ÷èñëà, èñïîëüçóÿ áèòîâûå îïåðàöèè: à) ñ âåäóùèìè íóëÿìè; á) áåç íèõ. 2. Íàéòè êîëè÷åñòâî åäèíèö â äâîè÷íîì ïðåäñòàâëåíèè öåëîãî ïîëîæèòåëüíîãî ÷èñëà: à) ïðè ïîìîùè öèêëà, êîëè÷åñòâî èòåðàöèé êîòîðîãî ðàâíî ÷èñëó áèòîâ, îòâîäèìûõ ïîä öåëîå ÷èñëî; á)* ïðè ïîìîùè öèêëà, ÷èñëî èòåðàöèé êîòîðîãî ðàâíî ÷èñëó åäèíè÷íûõ áèòîâ â ÷èñëå; â)* áåç öèêëîâ, ïðè ïîìîùè íåñêîëüêèõ ïîõîæèõ âûðàæåíèé, îòëè÷àþùèõñÿ òîëüêî âõîäÿùèìè â íèõ êîíñòàíòàìè, ñóììàðíàÿ äëèíà ýòèõ âûðàæåíèé ïðîïîðöèîíàëüíà äâîè÷íîìó ëîãàðèôìó ÷èñëà áèòîâ, îòâîäèìûõ äëÿ õðàíåíèÿ öåëîãî ÷èñëà. 3. Íàéòè íîìåð ìëàäøåãî åäèíè÷íîãî áèòà â äâîè÷íîì ïðåäñòàâëåíèè öåëîãî ïîëîæèòåëüíîãî ÷èñëà (áèòû íóìåðóþòñÿ ñ 0 îò ìëàäøèõ ê ñòàðøèì). 4*. Íàïèñàòü âûðàæåíèå, çíà÷åíèåì êîòîðîãî áóäåò èñõîäíîå ÷èñëî n, â êîòîðîì ìëàäøèé åäèíè÷íûé áèò (íå âàæíî, êàêîé ñòåïåíè äâîéêè îí ñîîòâåòñòâîâàë) îáíóëÿåòñÿ. 5. Íàïèñàòü âûðàæåíèå, ðåçóëüòàòîì êîòîðîãî ÿâëÿåòñÿ ÷èñëî, â äâîè÷íîì ïðåäñòàâëåíèè êîòîðîãî åäèíèöàìè áóäóò áèòû íà÷èíàÿ ñ i-ãî è äî j -ãî (ìîæíî ïðåäïîëàãàòü, ÷òî i ≤ j ). 6. Âû÷åðêíóòü i-é áèò èç äâîè÷íîãî ïðåäñòàâëåíèÿ öåëîãî ïîëîæèòåëüíîãî ÷èñëà (ìëàäøèå i-ãî áèòû îñòàþòñÿ íà ìåñòå, ñòàðøèå ñäâèãàþòñÿ íà îäèí ðàçðÿä âïðàâî). 7. Ïîìåíÿòü ìåñòàìè äâà áèòà ñ çàäàííûìè íîìåðàìè â äâîè÷íîì ïðåäñòàâëåíèè öåëîãî ïîëîæèòåëüíîãî ÷èñëà. 8. Îïðåäåëèòü, ñêîëüêî ðàç âñòðå÷àåòñÿ ¾11¿ â äâîè÷íîì ïðåäñòàâëåíèè öåëîãî ïîëîæèòåëüíîãî ÷èñëà (â äâîè÷íîì ïðåäñòàâëåíèè 11110111 îíî âñòðå÷àåòñÿ 5 ðàç). 9. Íàïèñàòü ïðîãðàììó, ââîäÿùóþ ñ êëàâèàòóðû öåëîå ÷èñëî è âûâîäÿùóþ äðóãîå, êàæäàÿ äâîè÷íàÿ öèôðà êîòîðîãî ïîëó÷åíà â ðåçóëüòàòå ñóììû ïî ìîäóëþ 2 äâîè÷íûõ öèôð èñõîäíîãî ÷èñëà â äàííîé, à òàêæå ñîñåäíèõ ñïðàâà è ñëåâà ïîçèöèÿõ (áåç öèêëîâ!). 10. Ïîëüçîâàòåëü çàãàäûâàåò ÷èñëî, è ñòðîèò ïî íåìó òðè äðóãèõ ÷èñëà ñ òåì óñëîâèåì, ÷òî â êàæäîì êîíêðåòíîì äâîè÷íîì ðàçðÿäå çàãàäàííîå ÷èñëî îòëè÷àåòñÿ íå áîëåå, ÷åì îò îäíîãî èç ïîñòðîåííûõ, ò. å. äëÿ ëþáîé ïîçèöèè äâîè÷íàÿ öèôðà çàãàäàííîãî ÷èñëà â äàííîé ïîçèöèè ñîâïàäàåò ñ òîé, êîòîðàÿ â äàííîé ïîçèöèè ñòîèò ïî êðàéíåé ìåðå ó äâóõ èç ïîñòðîåííûõ ÷èñåë. Íàïðèìåð, åñëè ïîñòðîåíû ÷èñëà (â äâîè÷íîé ñèñòåìå) 1001001, 1100101, 0000100, òî çàãàäàíî ÷èñëî 1000101. Íàïèñàòü ïðîãðàììó, ââîäÿùóþ ñ êëàâèàòóðû òðè ïîñòðîåííûõ öåëûõ ÷èñëà è âûâîäÿùóþ çàãàäàííîå ÷èñëî (áåç öèêëîâ!). 11. Ââåñòè öåëîå ÷èñëî è âûâåñòè äðóãîå, ïîëó÷åííîå èç ââåäåííîãî èçìåíåíèåì áèòîâ ñ ÷åòíûìè íîìåðàìè íà ïðîòèâîïîëîæíûå, ò. å. ê íóëåâîìó (ìëàäøåìó) áèòó, âòîðîìó (ñîîòâåòñòâóþùåìó 22 ), ÷åòâåðòîìó è ò. ä. áèòàì ïðèìåíÿåòñÿ îïåðàöèÿ îòðèöàíèÿ, à ïåðâûé (ñîîòâåòñòâóþùèé 21 ), òðåòèé è ò. ä. áèòû îñòàþòñÿ, êàê áûëè. Áåç öèêëîâ! 12. Ââåñòè ñ êëàâèàòóðû öåëîå ÷èñëî è âûâåñòè íîâîå ÷èñëî, ïîëó÷åííîå èç ââåäåííîãî âû÷åðêèâàíèåì âñåõ äâîè÷íûõ öèôð ñ ÷åòíûìè íîìåðàìè (íóëåâîé, âòîðîé, ÷åòâåðòîé è ò. ä.). Íàïðèìåð, åñëè äâîè÷íîå ïðåäñòàâëåíèå ââåäåííîãî ÷èñëà áûëî 1100101001, òî äâîè÷íîå ïðåäñòàâëåíèå ðåçóëüòàòà äîëæíî áûòü 10110. 13. Íàïèñàòü âûðàæåíèå, ðåàëèçóþùåå öèêëè÷åñêèé ñäâèã ÷èñëà âëåâî íà çàäàííîå êîëè÷åñòâî ïîçèöèé (â îòëè÷èå îò îáû÷íûõ ñäâèãîâ, ðåàëèçîâàííûõ îïåðàöèÿìè shl è shr, ïðè öèêëè÷åñêîì ñäâèãå òå áèòû, êîòîðûå âûëåçàþò çà êðàé ðàçðÿäíîé ñåòêè, ïåðåìåùàþòñÿ â äðóãîé êîíåö ÷èñëà è ïîÿâëÿþòñÿ íà îñâîáîæäàþùèõñÿ ïðè ñäâèãå ìåñòàõ). 14. Ââåñòè ÷èñëî è ïîìåíÿòü ó íåãî ìåñòàìè áèòû ñ íîìåðàìè 3i + 1 è 3i + 2 ïðè i = 0, 1, . . . , 9. Áåç öèêëîâ! 15*. Íàïèñàòü ïðîãðàììó, ââîäÿùóþ ñ êëàâèàòóðû öåëîå ÷èñëî è âûâîäÿùóþ ñëåäóþùåå ïî ïîðÿäêó ÷èñëî, â äâîè÷íîì ïðåäñòàâëåíèè êîòîðîãî ñòîëüêî æå åäèíèö, ñêîëüêî èõ áûëî âî ââåäåííîì ÷èñëå (áåç öèêëîâ!).