---
title: "&>>=(_:_:)"
framework: swift
role: symbol
role_heading: Operator
path: "swift/uint128/&__=(_:_:)-2trlh"
---

# &>>=(_:_:)

Calculates the result of shifting a value’s binary representation the specified number of digits to the right, masking the shift amount to the type’s bit width, and stores the result in the left-hand-side variable.

## Declaration

```swift
static func &>>= (a: inout UInt128, b: UInt128)
```

## Discussion

Discussion The &>>= operator performs a masking shift, where the value passed as rhs is masked to produce a value in the range 0..<lhs.bitWidth. The shift is performed using this masked value. The following example defines x as an instance of UInt8, an 8-bit, unsigned integer type. If you use 2 as the right-hand-side value in an operation on x, the shift amount requires no masking. var x: UInt8 = 30                 // 0b00011110 x &>>= 2 // x == 7                         // 0b00000111 However, if you use 19 as rhs, the operation first bitmasks rhs to 3, and then uses that masked value as the number of bits to shift lhs. var y: UInt8 = 30                 // 0b00011110 y &>>= 19 // y == 3                         // 0b00000011
