circular shift
Megjelenés
Főnév
circular shift (tsz. circular shifts)
- (informatika) A circular shift (magyarul: körkörös eltolás, ciklikus eltolás) egy soros eltolási művelet, amely egy sorozat elemeit eltolja balra vagy jobbra, úgy, hogy az eltolt elemek visszacsúsznak a másik végére. Ez a művelet gyakran előfordul informatikában, kriptográfiában, bitmanipulációban, és algoritmusokban.
🔁 Alapdefiníció
Legyen egy sorozat:
👉 Jobbra (right circular shift) 1 lépéssel:
👉 Balra (left circular shift) 1 lépéssel:
🧮 Egyszerű példa
Adott: A = [1, 2, 3, 4, 5]
- Balra 2 lépéssel:
[3, 4, 5, 1, 2] - Jobbra 2 lépéssel:
[4, 5, 1, 2, 3]
🧠 Alkalmazási területek
| Terület | Használat |
|---|---|
| 🧮 Bitmanipuláció | Regiszterek, hash algoritmusok, titkosítás |
| 🔐 Kriptográfia | AES, SHA körkörös biteltolások |
| 🧠 Memóriakezelés | FIFO/gyűrűbuffer implementációk |
| 🔁 Algoritmusok | Permutációk, rotációs kódolások |
| 🎮 Játékfejlesztés | Pályarotációk, mátrixtranszformációk |
| 📊 Képfeldolgozás | Körkörös mátrixeltolások textúráknál |
⚙️ C++ példa: körkörös balra eltolás
#include <iostream>
#include <vector>
#include <algorithm>
void circularShiftLeft(std::vector<int>& v, int k) {
int n = v.size();
k = k % n;
std::rotate(v.begin(), v.begin() + k, v.end());
}
int main() {
std::vector<int> data = {1, 2, 3, 4, 5};
circularShiftLeft(data, 2);
for (int x : data) std::cout << x << " ";
return 0;
}
// Kimenet: 3 4 5 1 2
🔐 Bit szintű circular shift (C-ben)
uint8_t rotate_left(uint8_t x, int k) {
return (x << k) | (x >> (8 - k));
}
uint8_t rotate_right(uint8_t x, int k) {
return (x >> k) | (x << (8 - k));
}
🧩 TL;DR
A circular shift egy olyan eltolási művelet, amely során az elemek „körbe” mozognak – ami kicsúszik az egyik oldalon, visszakerül a másikra. Hasznos kriptográfiában, bitkezelésben, játéktechnikában és mindenhol, ahol soros adatmozgatás vagy rotáció szükséges.
- circular shift - Szótár.net (en-hu)
- circular shift - Sztaki (en-hu)
- circular shift - Merriam–Webster
- circular shift - Cambridge
- circular shift - WordNet
- circular shift - Яндекс (en-ru)
- circular shift - Google (en-hu)
- circular shift - Wikidata
- circular shift - Wikipédia (angol)