UShort data type (Visual Basic)

Holds unsigned 16-bit (2-byte) integers ranging in value from 0 through 65,535.


Use the UShort data type to contain binary data too large for Byte.

The default value of UShort is 0.

Literal assignments

You can declare and initialize a UShort variable by assigning it a decimal literal, a hexadecimal literal, an octal literal, or (starting with Visual Basic 2017) a binary literal. If the integer literal is outside the range of UShort (that is, if it is less than System.UInt16.MinValue or greater than System.UInt16.MaxValue, a compilation error occurs.

In the following example, integers equal to 65,034 that are represented as decimal, hexadecimal, and binary literals are assigned to UShort values.

Dim ushortValue1 As UShort = 65034

Dim ushortValue2 As UShort = &HFE0A

Dim ushortValue3 As UShort = &B1111_1110_0000_1010
' The example displays the following output:
'          65034
'          65034
'          65034

You use the prefix &h or &H to denote a hexadecimal literal, the prefix &b or &B to denote a binary literal, and the prefix &o or &O to denote an octal literal. Decimal literals have no prefix.

Starting with Visual Basic 2017, you can also use the underscore character, _, as a digit separator to enhance readability, as the following example shows.

Dim ushortValue1 As UShort = 65_034

Dim ushortValue3 As UShort = &B11111110_00001010
' The example displays the following output:
'          65034
'          65034

Numeric literals can also include the US or us type character to denote the UShort data type, as the following example shows.

Dim number = &H035826us

Programming tips

  • Negative Numbers. Because UShort is an unsigned type, it cannot represent a negative number. If you use the unary minus (-) operator on an expression that evaluates to type UShort, Visual Basic converts the expression to Integer first.

  • CLS Compliance. The UShort data type is not part of the Common Language Specification (CLS), so CLS-compliant code cannot consume a component that uses it.

  • Widening. The UShort data type widens to Integer, UInteger, Long, ULong, Decimal, Single, and Double. This means you can convert UShort to any of these types without encountering a System.OverflowException error.

  • Type Characters. Appending the literal type characters US to a literal forces it to the UShort data type. UShort has no identifier type character.

  • Framework Type. The corresponding type in the .NET Framework is the System.UInt16 structure.

See Also

Data Types
Type Conversion Functions
Conversion Summary
How to: Call a Windows Function that Takes Unsigned Types
Efficient Use of Data Types