' // Процедура сортировки алгоритмом выборки Sub SelectionSort(ByRef array() As Integer, ByVal ToUpper As Boolean) Dim Dump As Integer Dim Index As Integer Dim Work As Integer
Do For i As Integer = Work To UBound(Array) If ToUpper = True Then If (Array(Index) > Array(i)) Then Index = i Else If (Array(Index) < Array(i)) Then Index = i End If Next
Dump = Array(Index) Array(Index) = Array(Work) Array(Work) = Dump ' // c2fbefeeebede8eb3a20caf3eff0e8ffedeee220c42ec52e2028632920442d6d6f6e3535 Work += 1 Index = Work Loop Until (Work > UBound(Array)) End Sub
Старший разряд в дополнительном коде двоичного числа отвечает за знак числа. 0 ~ "+", 1 ~ "-". 1. Если старший разряд равен 0, то последующие разряды напрямую переводятся в число.
2. Если старший разряд равен 1, то число отрицательное и следующие за старшим разрядом записываются в виде: инверсия битов+прибавление единицы. Следовательно для перевода их в исходное число требуется: вычесть единицу+инверсия Но так, как второе число состоит из 7 знаков, то слева дописывается незначащий 0. И мы возвращаемся в пункт 1(или просто число записано с ошибкой и вы потеряли разряд).
Sub SelectionSort(ByRef array() As Integer, ByVal ToUpper As Boolean)
Dim Dump As Integer
Dim Index As Integer
Dim Work As Integer
Do
For i As Integer = Work To UBound(Array)
If ToUpper = True Then
If (Array(Index) > Array(i)) Then Index = i
Else
If (Array(Index) < Array(i)) Then Index = i
End If
Next
Dump = Array(Index)
Array(Index) = Array(Work)
Array(Work) = Dump
' // c2fbefeeebede8eb3a20caf3eff0e8ffedeee220c42ec52e2028632920442d6d6f6e3535
Work += 1
Index = Work
Loop Until (Work > UBound(Array))
End Sub
1. Если старший разряд равен 0, то последующие разряды напрямую переводятся в число.
2. Если старший разряд равен 1, то число отрицательное и следующие за старшим разрядом записываются в виде:
инверсия битов+прибавление единицы.
Следовательно для перевода их в исходное число требуется:
вычесть единицу+инверсия
Но так, как второе число состоит из 7 знаков, то слева дописывается незначащий 0. И мы возвращаемся в пункт 1(или просто число записано с ошибкой и вы потеряли разряд).