Geseran melingkar

Dalam matematika kombinatorika, geseran melingkar (Inggris: circular shift) adalah operasi penataan daftar dalam daftar berurut (tuple) yang menggeser entri terakhir ke awal lalu sisanya mengikuti (tergeser) atau sebaliknya. Geseran melingkar adalah jenis permutasi siklis yang khusus. Secara formal, geseran melingkar adalah permutasi σ dari n entri dalam daftar berurut sehingga atau Hasil dari penerapan geseran melingkar pada suatu daftar berurut disebut pergeseran melingkar dari daftar berurut tersebut. Misalnya, penerapan geseran melingkar untuk daftar berurut (a, b, c, d) berturut-turut menghasilkan (d, a, b, c),
(c, d, a, b),
(b, c, d, a),
(a, b, c, d) (daftar berurut asli), dan kemudian berulang; daftar berurut ini memiliki empat pergeseran melingkar yang berbeda. Namun, tidak semua daftar berurut jumlah n memiliki n pergeseran yang berbeda. Misalnya, daftar berurut (a, b, a, b) hanya memiliki dua pergeseran melingkar yang berbeda. Pada umumnya, jumlah pergeseran melingkar dari daftar berurut jumlah n dapat bernilai faktor-faktor n dan bergantung pada entri-entri dalam daftar berurut. Dalam pemrograman, suatu rotasi tingkat bit, juga dikenal sebagai pergeseran melingkar, adalah operasi tingkat bit yang menggeser semua bitnya. Hal ini berbeda dengan pergeseran aritmetika. Pergeseran melingkar tidak memedulikan bit tanda bilangan atau membedakan pangkat dengan bilangan pokok dalam bilangan titik mengambang. Hal ini juga berbeda dengan pergeseran logika. Posisi bit yang kosong diisi oleh bit yang tergeser keluar dari barisannya.