Поделиться через


Практическое руководство. Оптимизация хранения положительных целых чисел с беззнаковыми типами

Обновлен: Ноябрь 2007

Если имеется переменная, содержащая только положительные значения (или 0), и эти значения никогда не превышают 4,294,967,295, то можно объявить переменную как UInteger вместо Long.

Преимуществом использования UInteger является 32-разрядное целое число типов Integer и UInteger, они являются наиболее эффективными типами данных в 32-разрядных платформах и обеспечивают оптимальное быстродействие приложения.

Переменную Integer можно использовать, если положительные значения никогда не превышают 2,147,483,647.

Чтобы объявить целое число с только положительными значениями

  • Объявите переменную As UInteger. Это показано в приведенном ниже примере.

    Public Function memoryRequired(ByVal m As UInteger) As UInteger
        Static r As UInteger = 0
        Try
            r += m
        Catch eo As System.OverflowException
            r = 0
        Catch ex As System.Exception
            MsgBox("Incrementing required memory causes """ & ex.Message & """")
        End Try
        Return r
    End Function
    

    Можно проверить функцию memoryRequired с помощью следующего кода:

    Public Sub consumeMemoryRequired()
        Dim m1 As UInteger = UInteger.MaxValue - 100
        Dim m2 As UInteger = 100
        MsgBox("Max = " & CStr(UInteger.MaxValue) & vbCrLf & _
            CStr(m1) & " -> " & CStr(memoryRequired(m1)) & vbCrLf & _
            "+ " & CStr(m2) & " -> " & CStr(memoryRequired(m2)) _
            & vbCrLf & "+ 1 -> " & CStr(memoryRequired(1)))
    End Sub
    
    sshstyf6.alert_caution(ru-ru,VS.90).gifВнимание!

    Тип данных UInteger не является частью Спецификация CLS (CLS), поэтому в CLS-совместимом коде нельзя использовать компонент, который его использует.

См. также

Задачи

Практическое руководство. Вызов функции Windows, принимающей значение беззнакового типа

Ссылки

Сводка типов данных (Visual Basic)

Тип данных Integer (Visual Basic)

Тип данных UInteger