1 / 12

Опериране с битове

Опериране с битове. 1. Поразредни логически операции. Целите числа могат да се разглеждат като редица от битове. В Паскал има 6 поразредни логически операции: not, and, or, xor, shl и shr. Всеки един бит е достъпен и може да бъде прочетен или променен. 2. Операцията not.

albany
Download Presentation

Опериране с битове

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Опериране с битове

  2. 1. Поразредни логически операции • Целите числа могат да се разглеждат като редица от битове. • В Паскал има 6 поразредни логически операции: not, and, or, xor, shl и shr. • Всеки един бит е достъпен и може да бъде прочетен или променен.

  3. 2. Операцията not • Нека имаме следните константи К=3 (K=00000011(2)); М=17 (M=00010001(2)); N=14 (N=00001110(2)); • Операцията notе едноаргументна и инвертира битовете на аргумента. • Writeln(not M); (Резултат: 18 (11101110(2))) • Първият бит е знаков: • 1 е за знака “-”; • 0 е за знака “+”.

  4. 3. Операцията and • Нека имаме следните константи К=3 (K=00000011(2)); М=17 (M=00010001(2)); N=14 (N=00001110(2)); • Операцията andе двуаргументна и представлява операцията конюнкция- побитово. • Writeln(Mand N); (Резултат: 0 (00000000(2))).

  5. 4. Операцията or • Нека имаме следните константи К=3 (K=00000011(2)); М=17 (M=00010001(2)); N=14 (N=00001110(2)); • Операцията orе двуаргументна и представлява операцията дизюнкция- побитово. • Writeln(Mor N); (Резултат: 31 (00011111(2))).

  6. 5. Операцията xor • Нека имаме следните константи К=3 (K=00000011(2)); М=17 (M=00010001(2)); N=14 (N=00001110(2)); • Операцията xorе двуаргументна и представлява операцията дизюнкция- побитово. • Writeln(Mxor N); (Резултат: 31 (00011111(2))). • Writeln(Mxor K); (Резултат: 18 (00010010(2))).

  7. 6. Операцията shl (изместване наляво) • Нека имаме следните константи К=3 (K=00000011(2)); М=17 (M=00010001(2)); N=14 (N=00001110(2)); • Операцията shlе двуаргументна и представлява изместване на битовете наляво толкова позиции, колкото е стойността на втория аргумент. • Writeln(Mshl (K-1)); (Резултат: 68 (01000100(2))).

  8. 7. Операцията shr (изместване надясно) • Нека имаме следните константи К=3 (K=00000011(2)); М=17 (M=00010001(2)); N=14 (N=00001110(2)); • Операцията shrе двуаргументна и представлява изместване на битовете на надясно толкова позиции, колкото е стойността на втория аргумент. Освободените позиции се запълват с знаковия бит, ако типа е shortint, integer, longint и 0 в останалите случаи. • Writeln(Mshr K); (Резултат: 2 (00000010(2))).

  9. 8. Представяне на отрицателните цели числа • Определение: Нека N е цяло число, записано в двоична бройна система, т.е. N=а1а2...аn, където ai{0,1}, i=1,2,…,n. Допълнителният кодNдопна числото N се определя с: Nдоп = където b1b2...bn=2n- а1а2...аn,bi{0,1}, i=1,2,…,n. 0 а1а2...аn, при N0; 1b1b2...bn, при N<0,

  10. 9. Алгоритъм за намиране на допълнителния код на произволно цяло отрицателно число: • В поле М от k бита се записва положителното число |N|. • Инвертират се битовете на полето M. • Прибавя се 1 към последната позиция на полето М. • Получената последователност от битове в полето М е допълнителният код на числото N.

  11. 10. Пример за намиране на допълнителния код на произволно цяло отрицателно число • Нека N=-18, k=8 • |N|=00010010 • Not(|N|)=11101101 • Not(|N|)+1=11101110

  12. 11. Шестнадесетични числа • Азбука- 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. • Декларирането имв езика Паскал става със знака $. • Примери: • $А123 • $10F5 • $901E7

More Related