- Menu g³ówne
- Newsy
- Forum
- Hackme 1.0
- Hackme 2.0
- Hackme 3.0
- HackmeMove

- Audiobooki
- Videoarty
- B³edy w PHP
- Linux
- Kurs PHP
- Kurs MySQL
- Kurs Smarty

- JavaScript
- HTML5

- ReverseCraft
- Assembler
- Delphi
- Pozostale
- Materia³y
- Artyku³y
- Security
- Linux
- Software
- Protoko³y
- Poka¿ wszystkie
- Nasze projekty
- UW-Shell
- Multi Koder
- Zadania z MySQL
- BlipCounter
- UW-Blog
- Muzeum FAQ
- JSCms
- GG dekoder
- Tester nickow
..:: Operacje bitowe ::..
Prezentujê tutaj popularne operatory bitowe u¿ywane czêsto w kryptografii oraz programowaniu. Do ka¿dego operatora bitowego dodajê przyk³adowy kod w ASEMBLERze oraz TURBO PASCAL'u prezentuj±cy u¿ycie operatorów w tych¿e jêzykach.
Znajdziecie tu tak¿e ogólne informacje o wykorzystaniu danych operatorów oraz krokowe opisy operacji na bitach sposobem pisemnym (na papierze - jak np. dodawanie sposobem pisemnym, które na pewno przerabiali¶cie na matematyce w szkole podstawowej).
W tek¶cie zaprezentowane zosta³y operatory: NOT, AND, OR, XOR, NOR oraz PRZESUNIÊCIA BITOWE w prawo i lewo.
NOT
Nazywany tak¿e negacj±. Jest czêsto wykorzystywany w prostej kryptografii. NOT nie ma zbyt szerokiego zastosowania w programowaniu.- NOT odwraca bity.
- Operator NOT jest jednoargumentowy!
ASEMBLER: not A PASCAL : not A (A := not A) not 1 = 0 not 0 = 1
not 11101011 = 0 not 11101011 = 00 not 11101011 = 000 not 11101011 = 0001 not 11101011 = 00010 not 11101011 = 000101 not 11101011 = 0001010 not 11101011 = 00010100 not 11101011 = 00010100 not 235 = 20
AND
Nazywany tak¿e mno¿eniem logicznym. Jest czêsto wykorzystywany w prostej kryptografii do haszowania hase³ (szyfrowania jednostronnego, czyli nieodwracalnego). Mo¿na go te¿ wykorzystywaæ do sprawdzania, czy interesuj±cy nas bit jest ustawiony. Wystarczy wtedy napisaæ odpowiedni± maskê i porównaæ j± z danymi w³a¶nie za pomoc± operatora AND.- AND ustawia bit, je¶li oba argumenty s± ustawione.
- Operator AND jest dwuargumentowy.
ASEMBLER: and A, B PASCAL : A and B (A := A not B) 1 and 1 = 1 1 and 0 = 0 0 and 1 = 0 0 and 0 = 0
10011101
and 11001100
= 1
10011101
and 11001100
= 10
10011101
and 11001100
= 100
10011101
and 11001100
= 1000
10011101
and 11001100
= 10001
10011101
and 11001100
= 100011
10011101
and 11001100
= 1000110
10011101
and 11001100
= 10001100
10011101 and 11001100 = 10001100
157 and 204 = 140
OR
Nazywany tak¿e dodawaniem logicznym. Operator OR jest wykorzystywany w prostej kryptografii do haszowania hase³ (patrz operator AND).- OR ustawia bit, je¿eli choæ jeden z argumentów jest ustawiony.
- Operator OR jest dwuargumentowy!
1 or 1 = 1 1 or 0 = 1 0 or 1 = 1 0 or 0 = 0
ASEMBLER: or A, B
PASCAL : A or B (A := A or B)
00011011
or 11000110
= 1
00011011
or 11000110
= 11
00011011
or 11000110
= 110
00011011
or 11000110
= 1101
00011011
or 11000110
= 11011
00011011
or 11000110
= 110111
00011011
or 11000110
= 1101111
00011011
or 11000110
= 11011111
00011011 or 11000110 = 11011111
27 or 198 = 223
XOR
Nazywany tak¿e ró¿nic± symetryczn± lub sum± modulo 2. Jest u¿ywany w prostej kryptografii. Wykorzystuje siê go tak¿e do zerowania danych (je¿eli wykonamy dzia³anieA xor A, to wynik bêdzie siê sk³ada³ z samych zer).- XOR ustawia bit, je¿eli argumenty s± ró¿ne.
- Operator XOR jest dwuargumentowy.
ASEMBLER: xor A, B PASCAL : A xor B (A := A xor B) 1 xor 1 = 0 1 xor 0 = 1 0 xor 1 = 1 0 xor 0 = 0
10010100
xor 10110111
= 0
10010100
xor 10110111
= 00
10010100
xor 10110111
= 001
10010100
xor 10110111
= 0010
10010100
xor 10110111
= 00100
10010100
xor 10110111
= 001000
10010100
xor 10110111
= 0010001
10010100
xor 10110111
= 00100011
10010100 xor 10110111 = 00100011
148 xor 183 = 35
NOR
Operator NOR nazywa siê tak¿e zerem logicznym. Jest bardzo rzadko wykorzystywany w programowaniu. Jest to jeden z typów bram logicznych, które umieszczane s± w uk³adach wewnêtrznych komputera. Tego operatora rzadko u¿ywa siê w kryptografii.- NOR ustawia bit, je¶li oba argumenty s± przestawione
- Operator NOR jest dwuargumentowy.
ASEMBLER: [brak takiego operatora] PASCAL : [brak takiego operatora] 1 nor 1 = 0 1 nor 0 = 0 0 nor 1 = 0 0 nor 0 = 1
01110001
nor 10010001
= 0
01110001
nor 10010001
= 00
01110001
nor 10010001
= 000
01110001
nor 10010001
= 0000
01110001
nor 10010001
= 00001
01110001
nor 10010001
= 000011
01110001
nor 10010001
= 0000111
01110001
nor 10010001
= 00001110
01110001 nor 10010001 = 00001110
113 nor 145 = 14
PRZESUNIÊCIE BITOWE W PRAWO (SHR)
Przesuniêcie bitów liczby o jedno miejsce w prawo jest równoznaczne z dzieleniem liczby przez dwa. Zasada ta nie sprawdza siê w przypadku operacji na liczbach zmiennoprzecinkowych (zmiennoprzecinkowe typy danych maj± odmienn± reprezentacjê bitow± ni¿ typy ca³kowite)!- Przesuniêcie bitowe w prawo przesuwa ustawione bity o N liczbê miejsc w prawo.
- Przesuniêcie bitowe ZAZWYCZAJ jest dwuargumentowe.
ASEMBLER: shr A, N PASCAL : A shr N (A := A shr N)
00110000 >> 1 = 00011000 00110000 >> 2 = 00001100
PRZESUNIÊCIE BITOWE Z LEWO (SHL)
Przesuniêcie bitów liczby o jedno miejsce w lewo jest równoznaczne z mno¿eniem liczby przez dwa. Zasada ta nie sprawdza siê w przypadku operacji na liczbach zmiennoprzecinkowych (zmiennoprzecinkowe typy danych maj± odmienn± reprezentacjê bitow± ni¿ typy ca³kowite)!- Przesuniêcie bitowe w lewo przesuwa ustawione bity o N liczbê miejsc w lewo.
- Przesuniêcie bitowe ZAZWYCZAJ jest dwuargumentowe.
ASEMBLER: shl A, N PASCAL : A shl N (A := A shl N)
00011100 << 1 = 00111000 00011100 << 2 = 01110000
Bulbin - gg: 5550418
Uwa¿asz, ¿e prezentowane przez nas informacje s± u¿yteczne? Pomó¿ nam je wypromowaæ!
- Newsletter
- Je¶li chcesz byæ powiadamiany o nowo¶ciach na stronie, wpisz tu swój e-mail
Copyright © 2003-2012 by UW-Team.org - All rights reserved.
Design by Skwara, coded by Unknow




Shell status: 
