Export (0) Print
Expand All

BigInteger.RightShift Operator

Shifts a BigInteger value a specified number of bits to the right.

Namespace:  System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public static BigInteger operator >>(
	BigInteger value,
	int shift
)

Parameters

value
Type: System.Numerics.BigInteger

The value whose bits are to be shifted.

shift
Type: System.Int32

The number of bits to shift value to the right.

Return Value

Type: System.Numerics.BigInteger
A value that has been shifted to the right by the specified number of bits.

The RightShift method defines the operation of the bitwise right-shift operator for BigInteger values. It enables code such as the following:

Languages that do not support custom operators can perform a bitwise right-shift operation by dividing value by BigInteger.Pow(2, shift) and subtracting 1 times shift for negative values. The following example shows that the results are identical to the results of using this operator.

Dim number As BigInteger = BigInteger.Parse("-9047321678449816249999312055")
Console.WriteLine("Shifting {0} right by:", number)
For ctr As Integer = 0 To 16
   Dim newNumber As BigInteger = BigInteger.Divide(number, BigInteger.Pow(2, ctr))
   If newNumber * ctr < 0 Then newNumber = newNumber - 1
   Console.WriteLine(" {0,2} bits: {1,35} {2,30}", 
                     ctr, newNumber, newNumber.ToString("X"))
Next 
' The example displays the following output: 
'      0 bits:       -9047321678449816249999312055       E2C43B1D0D6F07D2CC1FBB49 
'      1 bits:       -4523660839224908124999656028       F1621D8E86B783E9660FDDA4 
'      2 bits:       -2261830419612454062499828014        8B10EC7435BC1F4B307EED2 
'      3 bits:       -1130915209806227031249914007        C588763A1ADE0FA5983F769 
'      4 bits:        -565457604903113515624957004        E2C43B1D0D6F07D2CC1FBB4 
'      5 bits:        -282728802451556757812478502        F1621D8E86B783E9660FDDA 
'      6 bits:        -141364401225778378906239251         8B10EC7435BC1F4B307EED 
'      7 bits:         -70682200612889189453119626         C588763A1ADE0FA5983F76 
'      8 bits:         -35341100306444594726559813         E2C43B1D0D6F07D2CC1FBB 
'      9 bits:         -17670550153222297363279907         F1621D8E86B783E9660FDD 
'     10 bits:          -8835275076611148681639954          8B10EC7435BC1F4B307EE 
'     11 bits:          -4417637538305574340819977          C588763A1ADE0FA5983F7 
'     12 bits:          -2208818769152787170409989          E2C43B1D0D6F07D2CC1FB 
'     13 bits:          -1104409384576393585204995          F1621D8E86B783E9660FD 
'     14 bits:           -552204692288196792602498           8B10EC7435BC1F4B307E 
'     15 bits:           -276102346144098396301249           C588763A1ADE0FA5983F 
'     16 bits:           -138051173072049198150625           E2C43B1D0D6F07D2CC1F

If shift is greater than or equal to the number of bits in a positive BigInteger value, the result of the right-shift operation is BigInteger.Zero. If shift is greater than the number of bits in a negative BigInteger value, the result of the right-shift operation is BigInteger.MinusOne.

.NET Framework

Supported in: 4.6, 4.5, 4

.NET Framework Client Profile

Supported in: 4

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1
Show:
© 2015 Microsoft