Circular shift (original) (raw)
Би́товый сдвиг — изменение позиций бит в машинном слове. Большинство компьютеров не могут напрямую адресовать биты, которые содержатся группами по 8, 16, 32 или 64 бита в машинном слове. Для обеспечения работы с битами существует множество машинных инструкций, включающие различные типы сдвигов. Все сдвиги похожи друг на друга поведением средних битов, которые просто сдвигаются влево или вправо на определённую величину. Однако, поведение крайних битов, которые уходят из слова и которые появляются в слове, зависит от типа сдвига. В электронике битовые сдвиги выполняются на сдвиговых регистрах.
| Property | Value | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | - | - | - | - | - | - | ---------------------------------------------------------------------------------- | - | - | - | - | - | - | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | - | - | - | - | - | - | - | - | ----------------------------------------------------------------------------------------------- | | - | - | - | - | - | - | - | - | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | dbo:abstract | الانتقال الدوراني في الرياضيات لعناصر زمرة بحيث يصبح آخر عنصر مكان أول عنصر وتنقل جميع العناصر، أو يصبح العنصر الأول مكان العنصر الأخير وتنقل جميع العناصر. بمعنى آخر النقل بشكل دوراني دون تغيير ترتيب العناصر التسلسلي ضمن الزمرة (عدا العنصر الأول والأخير). على سبيل المثال، الانتقال الدوراني لعناصر الزمرة (a, b, c) يعطي ما يلي: * (a, b, c) (مطابقة للأصل) * (c, a, b) * (b, c, a) في علوم الحاسب، الانتقال الدوراني هو عملية تنقل بتات المعلومات بشكل مرتب دورانياً. على خلاف ، فإن الانتقال الدوراني لا يحافظ على بت إشارة العدد أو يميز أس العدد من الفاصلة العشرية. وعلى خلاف ، لا يتم ملئ البت الفارغ بالعدد صفر ولكن يملأ بالعدد الذي يأتي في ترتيب النقل. يستخدم الانتقال الدوراني عادة في تطبيقات علم التعمية لتقنية بسيطة لتشفير سلسلة من البتات. (ar) In combinatorial mathematics, a circular shift is the operation of rearranging the entries in a tuple, either by moving the final entry to the first position, while shifting all other entries to the next position, or by performing the inverse operation. A circular shift is a special kind of cyclic permutation, which in turn is a special kind of permutation. Formally, a circular shift is a permutation σ of the n entries in the tuple such that either modulo n, for all entries i = 1, ..., n or modulo n, for all entries i = 1, ..., n. The result of repeatedly applying circular shifts to a given tuple are also called the circular shifts of the tuple. For example, repeatedly applying circular shifts to the four-tuple (a, b, c, d) successively gives * (d, a, b, c), * (c, d, a, b), * (b, c, d, a), * (a, b, c, d) (the original four-tuple), and then the sequence repeats; this four-tuple therefore has four distinct circular shifts. However, not all n-tuples have n distinct circular shifts. For instance, the 4-tuple (a, b, a, b) only has 2 distinct circular shifts. In general the number of circular shifts of an n-tuple could be any divisor of n, depending on the entries of the tuple. In computer programming, a bitwise rotation, also known as a circular shift, is a bitwise operation that shifts all bits of its operand. Unlike an arithmetic shift, a circular shift does not preserve a number's sign bit or distinguish a floating-point number's exponent from its significand. Unlike a logical shift, the vacant bit positions are not filled in with zeros but are filled in with the bits that are shifted out of the sequence. (en) Dalam matematika kombinatorika, geseran melingkar (bahasa 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 yang khusus. Secara formal, geseran melingkar adalah permutasi σ dari n entri dalam daftar berurut sehingga n untuk semua entri i = 1, ..., n atau n untuk semua entri i = 1, ..., n. 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 , juga dikenal sebagai pergeseran melingkar, adalah operasi tingkat bit yang menggeser semua bitnya. Hal ini berbeda dengan . Pergeseran melingkar tidak memedulikan bit tanda bilangan atau membedakan pangkat dengan bilangan pokok dalam . Hal ini juga berbeda dengan . Posisi bit yang kosong diisi oleh bit yang tergeser keluar dari barisannya. (in) Un décalage circulaire est une opération sur une liste ordonnée (ou n-uplet), consistant à faire passer le dernier élément au début et à décaler tous les autres ; ou à l'inverse, faire passer le premier élément à la fin, et décaler les autres. Cette opération peut être répétée de manière récursive. Il s'agit donc d'une permutation circulaire particulière, de même longueur que l'ensemble des n éléments sur lequel elle est définie. Par exemple, si l'on prend la liste (a, b, c) — c'est un triplet —, alors ses décalages circulaires successifs sont : * (a, b, c) ; * (c, a, b) ; * (b, c, a). De manière générale, si l'on a un n-uplet (a1, a2, …, an) alors les décalages circulaires sont obtenus en appliquant l'algorithme récursif suivant : premier décalagea 11 = a npour 1 < i < n, a 1i+1 = a ij e décalage (j < n) :a j1 = a j-1npour 1 < i < n, a ji+1 = a j-1i (fr) Obrót bitowy lub przesunięcie cykliczne – działanie na słowach bitowych polegająca na zmianie pozycji wszystkich bitów, w taki sposób, że bit o indeksie po wykonaniu obrotu o miejsc znajduje się na pozycji gdzie to liczba bitów w danym słowie. Ze względu na znak rozróżnia się obroty w lewo i w prawo Przykład obrotu dla słowa 8-bitowego o 3 miejsca w lewo: 7 6 5 4 3 2 1 0 ← indeksy+---+---+---+---+---+---+---+---+| a | b | c | d | e | f | g | h | przed obrotem+---+---+---+---+---+---+---+---++---+---+---+---+---+---+---+---+| d | e | f | g | h | a | b | c | po obrocie+---+---+---+---+---+---+---+---+ 4 3 2 1 0 7 6 5 ← indeksy przed obrotem Obroty bitowe są implementowane w wielu procesorach; niektóre pozwalają także na wykonywanie obrotów przez znacznik przeniesienia (jedną z flag ALU), tj. rozszerzenie słowa o ten bit i dopiero wówczas wykonywany jest obrót bitowy: CF 7 6 5 4 3 2 1 0 ← indeksy+---+ +---+---+---+---+---+---+---+---+| X | | a | b | c | d | e | f | g | h | przed obrotem+---+ +---+---+---+---+---+---+---+---+ +---+ +---+---+---+---+---+---+---+---+| c | | d | e | f | g | h | X | a | b | po obrocie+---+ +---+---+---+---+---+---+---+---+ 5 4 3 2 1 0 CF 7 6 ← indeksy przed obrotem Np. w mikroprocesorach serii x86 istnieją instrukcje ROL oraz ROR wykonujące – odpowiednio – obrót w lewo i prawo, natomiast RCL/RCR wykonują obrót w lewo/prawo przez znacznik przeniesienia. W popularnych językach programowania nie istnieją operatory, które wprost umożliwiałyby takie działanie. Mogą być jednak łatwo zrealizowane za pomocą dwóch przesunięć bitowych i jednej operacji sumy bitowej. Np. w języku C obrót w lewo 8-bitowego słowa można wykonać następująco: y = (x << n) | (x >> (8-n)); (pl) Би́товый сдвиг — изменение позиций бит в машинном слове. Большинство компьютеров не могут напрямую адресовать биты, которые содержатся группами по 8, 16, 32 или 64 бита в машинном слове. Для обеспечения работы с битами существует множество машинных инструкций, включающие различные типы сдвигов. Все сдвиги похожи друг на друга поведением средних битов, которые просто сдвигаются влево или вправо на определённую величину. Однако, поведение крайних битов, которые уходят из слова и которые появляются в слове, зависит от типа сдвига. В электронике битовые сдвиги выполняются на сдвиговых регистрах. (ru) Бітовий зсув ― зміна позицій бітів у машинному слові на одну і ту ж величину. Більшість комп'ютерів не можуть напряму адресувати біти, які містяться групами по 8, 16, 32 або 64 бітів у машинних словах. Для забезпечення роботи з бітами існує багато машинних інструкцій, що включають різні типи зсувів. Всі зсуви схожі між собою поведінкою середніх бітів, які просто зсуваються вліво або вправо на певну величину. Однак, поведінка крайніх бітів, які виходять зі слова та які з'являються в слові, залежить від типу зсуву. В електроніці бітові зсуви здійснюються в регістрах зсуву. (uk) | | dbo:thumbnail | wiki-commons:Special:FilePath/Example_permutation_matrix;_circular_shift,_left.svg?width=300 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbo:wikiPageID | 1917276 (xsd:integer) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbo:wikiPageLength | 9016 (xsd:nonNegativeInteger) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbo:wikiPageRevisionID | 1097704642 (xsd:integer) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbo:wikiPageWikiLink | dbr:Bitwise_operation dbr:Bitwise_rotation dbr:Block_code dbr:Permutation dbr:Permutation_matrix dbr:Regular_expression dbr:Cyclic_code dbr:Cyclic_language dbr:Undefined_behaviour dbr:Cryptography dbr:Mathematics dbr:Necklace_(combinatorics) dbr:Modular_arithmetic dbr:Context-free_language dbr:Arithmetic_shift dbr:Combinatorics dbr:Computer_programming dbr:String_(computer_science) dbr:C_(programming_language) dbr:Tuple dbr:Divisor dbr:Logical_shift dbr:Cyclic_permutation dbr:Formal_language_theory dbr:Barrel_shifter dbr:John_Regehr dbc:Computer_arithmetic dbr:Intrinsic_function dbr:ANSI_C dbc:Elementary_mathematics dbr:Big_O_notation dbr:Set_(mathematics) dbr:Lyndon_word dbr:Significand dbr:Floating-point_number dbr:Circulant dbr:Processors dbr:Intel_x86 dbr:Exponent dbr:File:Rotate_left.svg dbr:File:Rotate_right.svg | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbp:align | right (en) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbp:footer | Matrices of 8-element circular shifts to the left and right (en) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbp:height | 148 (xsd:integer) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbp:image | Example permutation matrix; circular shift, right.svg (en) Example permutation matrix; circular shift, left.svg (en) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbp:totalWidth | 400 (xsd:integer) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbp:width | 169 (xsd:integer) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dbp:wikiPageUsesTemplate | dbt:Clear dbt:Multiple_image dbt:Refimprove dbt:Reflist | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dct:subject | dbc:Computer_arithmetic dbc:Elementary_mathematics | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rdf:type | yago:Abstraction100002137 yago:Change107296428 yago:Cognition100023271 yago:Concept105835747 yago:Content105809192 yago:Event100029378 yago:Happening107283608 yago:Idea105833840 yago:PsychologicalFeature100023100 yago:YagoPermanentlyLocatedEntity yago:Substitution107443761 yago:Variation107337390 yago:WikicatPermutations yago:WikicatProgrammingConstructs | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rdfs:comment | Би́товый сдвиг — изменение позиций бит в машинном слове. Большинство компьютеров не могут напрямую адресовать биты, которые содержатся группами по 8, 16, 32 или 64 бита в машинном слове. Для обеспечения работы с битами существует множество машинных инструкций, включающие различные типы сдвигов. Все сдвиги похожи друг на друга поведением средних битов, которые просто сдвигаются влево или вправо на определённую величину. Однако, поведение крайних битов, которые уходят из слова и которые появляются в слове, зависит от типа сдвига. В электронике битовые сдвиги выполняются на сдвиговых регистрах. (ru) Бітовий зсув ― зміна позицій бітів у машинному слові на одну і ту ж величину. Більшість комп'ютерів не можуть напряму адресувати біти, які містяться групами по 8, 16, 32 або 64 бітів у машинних словах. Для забезпечення роботи з бітами існує багато машинних інструкцій, що включають різні типи зсувів. Всі зсуви схожі між собою поведінкою середніх бітів, які просто зсуваються вліво або вправо на певну величину. Однак, поведінка крайніх бітів, які виходять зі слова та які з'являються в слові, залежить від типу зсуву. В електроніці бітові зсуви здійснюються в регістрах зсуву. (uk) الانتقال الدوراني في الرياضيات لعناصر زمرة بحيث يصبح آخر عنصر مكان أول عنصر وتنقل جميع العناصر، أو يصبح العنصر الأول مكان العنصر الأخير وتنقل جميع العناصر. بمعنى آخر النقل بشكل دوراني دون تغيير ترتيب العناصر التسلسلي ضمن الزمرة (عدا العنصر الأول والأخير). على سبيل المثال، الانتقال الدوراني لعناصر الزمرة (a, b, c) يعطي ما يلي: * (a, b, c) (مطابقة للأصل) * (c, a, b) * (b, c, a) (ar) In combinatorial mathematics, a circular shift is the operation of rearranging the entries in a tuple, either by moving the final entry to the first position, while shifting all other entries to the next position, or by performing the inverse operation. A circular shift is a special kind of cyclic permutation, which in turn is a special kind of permutation. Formally, a circular shift is a permutation σ of the n entries in the tuple such that either modulo n, for all entries i = 1, ..., n or modulo n, for all entries i = 1, ..., n. (en) Un décalage circulaire est une opération sur une liste ordonnée (ou n-uplet), consistant à faire passer le dernier élément au début et à décaler tous les autres ; ou à l'inverse, faire passer le premier élément à la fin, et décaler les autres. Cette opération peut être répétée de manière récursive. Il s'agit donc d'une permutation circulaire particulière, de même longueur que l'ensemble des n éléments sur lequel elle est définie. Par exemple, si l'on prend la liste (a, b, c) — c'est un triplet —, alors ses décalages circulaires successifs sont : * (a, b, c) ; * (c, a, b) ; * (b, c, a). (fr) Dalam matematika kombinatorika, geseran melingkar (bahasa 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 yang khusus. Secara formal, geseran melingkar adalah permutasi σ dari n entri dalam daftar berurut sehingga n untuk semua entri i = 1, ..., n atau n untuk semua entri i = 1, ..., n. Hasil dari penerapan geseran melingkar pada suatu daftar berurut disebut pergeseran melingkar dari daftar berurut tersebut. (in) Obrót bitowy lub przesunięcie cykliczne – działanie na słowach bitowych polegająca na zmianie pozycji wszystkich bitów, w taki sposób, że bit o indeksie po wykonaniu obrotu o miejsc znajduje się na pozycji gdzie to liczba bitów w danym słowie. Ze względu na znak rozróżnia się obroty w lewo i w prawo Przykład obrotu dla słowa 8-bitowego o 3 miejsca w lewo: Obroty bitowe są implementowane w wielu procesorach; niektóre pozwalają także na wykonywanie obrotów przez znacznik przeniesienia (jedną z flag ALU), tj. rozszerzenie słowa o ten bit i dopiero wówczas wykonywany jest obrót bitowy: (pl) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | rdfs:label | انتقال دوراني (ar) Zyklische Verschiebung (de) Circular shift (en) Geseran melingkar (in) Décalage circulaire (fr) Obrót bitowy (pl) Битовый сдвиг (ru) Бітовий зсув (uk) | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | owl:sameAs | freebase:Circular shift yago-res:Circular shift wikidata:Circular shift dbpedia-ar:Circular shift dbpedia-de:Circular shift dbpedia-fa:Circular shift dbpedia-fr:Circular shift dbpedia-id:Circular shift dbpedia-pl:Circular shift dbpedia-ro:Circular shift dbpedia-ru:Circular shift dbpedia-th:Circular shift dbpedia-uk:Circular shift https://global.dbpedia.org/id/2pSjo | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | prov:wasDerivedFrom | wikipedia-en:Circular_shift?oldid=1097704642&ns=0 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | foaf:depiction | wiki-commons:Special:FilePath/Rotate_left.svg wiki-commons:Special:FilePath/Rotate_right.svg wiki-commons:Special:FilePath/Example_permutation_matrix;_circular_shift,_left.svg wiki-commons:Special:FilePath/Example_permutation_matrix;_circular_shift,_right.svg | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | foaf:isPrimaryTopicOf | wikipedia-en:Circular_shift | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is dbo:wikiPageDisambiguates of | dbr:Shift | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is dbo:wikiPageRedirects of | dbr:Circular_Shift dbr:Bitwise_rotate dbr:ROtate_Left dbr:ROtate_Right dbr:Cyclic_Shift dbr:Cyclic_rotation dbr:Cyclic_shift | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is dbo:wikiPageWikiLink of | dbr:Proofs_of_Fermat's_little_theorem dbr:Multistage_interconnection_networks dbr:Reverse_computation dbr:Bitwise_operation dbr:Board_(bridge) dbr:Rijndael_S-box dbr:Cube-connected_cycles dbr:Cyclic_code dbr:Cyclic_language dbr:Double_counting_(proof_technique) dbr:List_of_permutation_topics dbr:SHA-1 dbr:SHA-3 dbr:Necklace_(combinatorics) dbr:Parasitic_number dbr:Generalized_Clifford_algebra dbr:Context-free_language dbr:Rolling_hash dbr:MOS_Technology_6502 dbr:Hall_word dbr:Circular_Shift dbr:Logical_shift dbr:Three-pass_protocol dbr:AES_key_schedule dbr:Barrel_shifter dbr:ROL dbr:Triple_product dbr:Assembly_language dbr:Block_cipher dbr:Zadoff–Chu_sequence dbr:Burrows–Wheeler_transform dbr:Free_monoid dbr:Reed–Solomon_error_correction dbr:Maximum_length_sequence dbr:Ror_(disambiguation) dbr:Shift dbr:Simon_(cipher) dbr:Shuffle-exchange_network dbr:Ihara_zeta_function dbr:Lyndon_word dbr:Rotational_cryptanalysis dbr:Russian_copulation dbr:Truncated_dodecadodecahedron dbr:The_Geometry_of_Musical_Rhythm dbr:Bitwise_rotate dbr:ROtate_Left dbr:ROtate_Right dbr:Cyclic_Shift dbr:Cyclic_rotation dbr:Cyclic_shift | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | is foaf:primaryTopic of | wikipedia-en:Circular_shift | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |