tanszek:oktatas:szamitastechnika:binaris_muveletek
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
tanszek:oktatas:szamitastechnika:binaris_muveletek [2024/10/02 06:47] – [Bináris műveletek gyakorlati alkalmazása: AND, OR, XOR] knehez | tanszek:oktatas:szamitastechnika:binaris_muveletek [2024/10/08 19:23] (current) – [1. AND művelet] knehez | ||
---|---|---|---|
Line 3: | Line 3: | ||
A bináris logikai műveletek (**AND**, **OR**, **XOR**) fontos szerepet játszanak a bitek kezelésében, | A bináris logikai műveletek (**AND**, **OR**, **XOR**) fontos szerepet játszanak a bitek kezelésében, | ||
- | ==== 1. AND művelet ==== | + | ==== 1. AND (és) művelet ==== |
- | Az **AND** művelet csak akkor ad 1-es eredményt, ha mindkét bemenet 1. A bitek " | + | Az **AND** művelet csak akkor ad 1-es eredményt, ha mindkét bemenet 1. A bitek " |
- | * Példa: Adott egy 8 bites számunk: `10101101`. Ha csak az alsó négy bitet akarjuk megtartani, akkor használjuk az AND műveletet: | + | |
- | - `10101101 & 00001111 = 00001101`. | + | |
- | + | ||
- | Ez hasznos, ha egy adott bitcsoportot akarunk " | + | |
**Igazságtábla: | **Igazságtábla: | ||
Line 18: | Line 14: | ||
| 1 | 1 | 1 | | | 1 | 1 | 1 | | ||
- | ==== 2. OR művelet ==== | + | **Példa**: Adott egy 8 bites számunk: '' |
- | Az **OR** művelet akkor ad 1-es eredményt, ha legalább az egyik bemenet 1. Ezt a bitek " | + | < |
- | * Példa: Ha egy bitek közül egyet be akarunk állítani, használjuk az OR-t: | + | 10101101 |
- | - `10101101 | 00001000 = 10101101`. | + | & 00001111 |
+ | -------- | ||
+ | 00001101 | ||
+ | </ | ||
- | Ez hasznos, ha egy konkrét bitet szeretnénk | + | Ez hasznos, ha egy adott bitcsoportot akarunk // |
+ | |||
+ | |||
+ | |||
+ | ==== 2. OR (vagy) művelet ==== | ||
+ | Az **OR** művelet akkor ad 1-es eredményt, ha legalább az egyik bemenet 1. Ezt a bitek " | ||
**Igazságtábla: | **Igazságtábla: | ||
Line 32: | Line 36: | ||
| 1 | 0 | 1 | | | 1 | 0 | 1 | | ||
| 1 | 1 | 1 | | | 1 | 1 | 1 | | ||
+ | |||
+ | **Példa**: Ha egy bitek közül egyet be akarunk állítani (pl. jobbról a negyediket), | ||
+ | |||
+ | < | ||
+ | 10101101 | ||
+ | | 00001000 | ||
+ | ---------- | ||
+ | 10101101 | ||
+ | </ | ||
+ | |||
+ | Ez hasznos, ha egy konkrét bitet szeretnénk 1-re állítani anélkül, hogy a többi bitet megváltoztatnánk. | ||
+ | |||
+ | |||
==== 3. XOR művelet ==== | ==== 3. XOR művelet ==== | ||
Az **XOR** (kizáró vagy) művelet akkor ad 1-et, ha a bemenetek eltérnek. Ezzel biteket kapcsolgathatunk, | Az **XOR** (kizáró vagy) művelet akkor ad 1-et, ha a bemenetek eltérnek. Ezzel biteket kapcsolgathatunk, | ||
- | * Példa: Ha az alsó 4 bit értékét akarjuk megváltoztatni: | ||
- | - `10101101 ^ 00001111 = 10100010`. | ||
- | |||
- | Ez a művelet különösen hasznos, ha egy adott bitet meg akarunk " | ||
**Igazságtábla: | **Igazságtábla: | ||
Line 47: | Line 60: | ||
| 1 | 0 | 1 | | | 1 | 0 | 1 | | ||
| 1 | 1 | 0 | | | 1 | 1 | 0 | | ||
+ | |||
+ | **Példa**: Ha az alsó 4 bit értékét akarjuk megfordítani: | ||
+ | < | ||
+ | 10101101 | ||
+ | ^ 00001111 | ||
+ | ---------- | ||
+ | 10100010 | ||
+ | </ | ||
==== Gyakorlati példa: Bitek beállítása és törlése ==== | ==== Gyakorlati példa: Bitek beállítása és törlése ==== | ||
- | Tegyük fel, hogy van egy 8 bites regiszterünk: | + | Tegyük fel, hogy van egy 8 bites regiszterünk: |
+ | |||
+ | **Egy bit bekapcsolása (pl. 3. bit):** | ||
+ | |||
+ | '' | ||
+ | |||
+ | Maszk legyen: '' | ||
+ | |||
+ | Megjegyzés: | ||
+ | |||
+ | Művelet: '' | ||
+ | |||
+ | Eredmény: | ||
+ | < | ||
+ | 10101001 | ||
+ | | 00000100 | ||
+ | ---------- | ||
+ | 10101101 (a 3. bit 1 lett) | ||
+ | </ | ||
+ | |||
+ | **Egy bit kikapcsolása (pl. 4. bit):** | ||
+ | |||
+ | '' | ||
+ | |||
+ | Maszk legyen: '' | ||
+ | |||
+ | Megjegyzés: | ||
+ | |||
+ | Művelet: '' | ||
+ | |||
+ | Eredmény: | ||
+ | < | ||
+ | 10101101 | ||
+ | & 11110111 | ||
+ | ---------- | ||
+ | 10100101 | ||
+ | </ | ||
+ | |||
+ | === Egy bit átkapcsolása (pl. 0. bit): === | ||
+ | |||
+ | Maszk legyen: '' | ||
+ | |||
+ | Művelet: '' | ||
- | - **Egy bit bekapcsolása (pl. 2. bit):** | + | Eredmény: |
- | * Maszk: `00000100` | + | <code> |
- | * Művelet: `R | Maszk` | + | 10101101 |
- | * Eredmény: `10101101 | 00000100 = 10101101` (a 2. bit már 1, nincs változás) | + | ^ 00000001 |
- | | + | ---------- |
- | | + | 10101100 |
- | * Maszk: `11110111` | + | </ |
- | * Művelet: `R & Maszk` | + | |
- | * Eredmény: `10101101 | + | |
- | + | ||
- | - **Egy bit átkapcsolása (pl. 0. bit):** | + | |
- | * Maszk: `00000001` | + | |
- | * Művelet: `R ^ Maszk` | + | |
- | * Eredmény: `10101101 ^ 00000001 = 10101100` (a 0. bit megfordult) | + | |
Az igazságtáblák és a fenti példák segítségével megérthető, | Az igazságtáblák és a fenti példák segítségével megérthető, |
tanszek/oktatas/szamitastechnika/binaris_muveletek.1727851637.txt.gz · Last modified: 2024/10/02 06:47 by knehez