Intermediate

Bit-rotationsräknare (cirkulär shift)

Utför en cirkulär bitrotation (barrel shift) av ett heltal åt vänster eller höger inom ett 8-, 16-, 32- eller 64-bitars register.
Non-negative integer that fits in the chosen width

bits

Riktning

Bit width

Rotated value (binary)
10010110
Decimal
150
Binary
10010110
Hex
0x96
Effective shift
3
031.963.895.6127.5159.4191.3223.1255Before and after rotation in the 8-bit range
Step by step
  1. 1

    Effective rotate amount

    3 mod 8 = 3
  2. 2

    Rotate left

    (210 << 3) | (210 >> (8 − 3)) = 150
    Bits leaving one end reappear at the other; result masked to 8 bits.
Resultaten är uppskattningar endast för allmän information och utgör inte professionell rådgivning — verifiera alltid viktiga resultat oberoende innan du förlitar dig på dem. Läs hela ansvarsfriskrivningen.
Snabbt svar

Hur fungerar denna kalkylator?

En bitrotation, eller cirkulär shift, flyttar varje bit hos ett heltal åt vänster eller höger med k positioner inuti ett w-bitars register, och bitar som lämnar ena änden återkommer på den andra. Reducera k med k mod w, OR:a sedan det förskjutna värdet med de omrundade bitarna och maskera till w bitar. Utdata visas i decimal, binär och hex.

Formel
ROL: r = ((n << k) | (n >> (w − k))) & mask; ROR: r = ((n >> k) | (n << (w − k))) & mask; mask = (1 << w) − 1
How this is calculated

En rotation (även kallad cirkulär eller barrel shift) flyttar varje bit hos värdet n med k positioner inuti ett register med den fasta bredden w. Till skillnad från en vanlig shift kasseras inte bitar som skjuts bort från ena sidan — de återinförs på motsatt sida, så det totala antalet ettor ändras aldrig. Välj den bredd (8, 16, 32 eller 64) som matchar det register du modellerar; n måste vara icke-negativt och passa inom den bredden.

Räknaren reducerar först rotationsmängden med k mod w, eftersom rotation med hela bredden återger det ursprungliga värdet. En vänsterrotation kombinerar (n << k) med de omrundade bitarna (n >> (w − k)), och maskerar sedan resultatet med (1 << w) − 1 för att behålla enbart de låga w bitarna. En högerrotation är spegelbilden och använder (n >> k) och (n << (w − k)). All aritmetik görs med godtyckliga precisionens heltal (BigInt) så att 64-bitars värden förblir exakta.

Utdata visas i decimal, som en nollutfylld w-bitars binärsträng och i hexadecimal utfylld till registerbredden. Kantfall: ett rotationsbelopp som är en multipel av w lämnar värdet oförändrat, och ett värde som inte passar i den valda bredden avvisas. Bitindex i uppdelningen är märkta med den mest signifikanta biten till vänster.

Vanliga frågor

En logisk shift kasserar de bitar som faller bort från sidan och fyller de frilagda positionerna med nollor. En rotation (cirkulär shift) matar tillbaka dessa bitar i den andra änden, så ingen information går förlorad och antalet satta bitar förblir detsamma.

Att rotera w gånger i ett w-bitars register återför varje bit till sin ursprungliga position. Räknaren tillämpar k mod w, så en rotation med 8 i ett 8-bitars register, eller 16, 24 och så vidare, är ekvivalent med att rotera med 0.

Värdet måste vara representerat i w bitar (mellan 0 och 2^w − 1). Om n är större, bredda registret eller minska n; räknaren kastar inte tyst bort bitar.

Även känt som

bitrotation
cirkulär skiftning
rotera bitar
rotera vänster höger
rol ror
bit rotera kalkylator

APA

TG we-Calculate Editorial Team. (2026). Bit-rotationsräknare (cirkulär shift) [Online calculator]. TG we-Calculate. https://we-calculate.com/sv/calculator/bit-rotate-calculator

Chicago

TG we-Calculate Editorial Team. "Bit-rotationsräknare (cirkulär shift)." TG we-Calculate. 2026. https://we-calculate.com/sv/calculator/bit-rotate-calculator.

IEEE

TG we-Calculate Editorial Team, "Bit-rotationsräknare (cirkulär shift)," TG we-Calculate, 2026. [Online]. Available: https://we-calculate.com/sv/calculator/bit-rotate-calculator

BibTeX

@misc{wecalculate_bit_rotate_calculator, title = {Bit-rotationsräknare (cirkulär shift)}, author = {{TG we-Calculate Editorial Team}}, howpublished = {\url{https://we-calculate.com/sv/calculator/bit-rotate-calculator}}, year = {2026}, note = {TG we-Calculate} }

Hjälpte denna kalkylator dig?