BigInteger.RightShift Operator
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Shifts a BigInteger value a specified number of bits to the right.
Namespace: System.Numerics
Assembly: System.Numerics (in System.Numerics.dll)
Syntax
'Declaration
Public Shared Operator >> ( _
value As BigInteger, _
shift As Integer _
) As BigInteger
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.
Remarks
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.MinusOne * BigInteger.Multiply(UInt64.MaxValue, 490456290) + 17478743027342903705ul
outputBlock.Text += String.Format("Shifting {0} right by:", number) & vbCrLf
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
outputBlock.Text += String.Format(" {0,2} bits: {1,35} {2,30}",
ctr, newNumber, newNumber.ToString("X")) + vbCrLf
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.
Version Information
Silverlight
Supported in: 5, 4
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.