Number System Functions

 

Function

Description

Hex(x)

Returns a string representing the hexadecimal equivalent of x (i.e., it converts a decimal number to a hexadecimal number).

 

Example:

 

Print "The decimal number 687 is "; Hex(687); " in hex."

 

The output of the line above would be:

 

The decimal number 687 is 2AF in hex.

 

Oct(x)

Returns a string representing the octal equivalent of x (i.e., it converts a decimal number to a octal number).

 

Example:

 

Print "The decimal number 627 is "; Oct(627); " in octal."

 

The output of the line above would be:

 

The decimal number 627 is 1163 in octal.

 

 

Hex and Octal Numeric Literals

 

&H before a number means that the number is specified in hex:

 

Example:

 

Const intHexNum As Integer = &H2AFS

Console.WriteLine(CStr(intHexNum))

 

Output:

 

687

 

&O before a number means that the number is specified in octal:

 

Example:

 

Const intOctNum As Integer = &O1163

Console.WriteLine(CStr(intOctNum))

 

Output:

 

627

 

 

Converting a Hex or Octal Number to Decimal

 

To convert a hexadecimal or octal number to a decimal value, you must treat the hex or octal value as a string, append "&H" or "&O" in front of the value, and use a conversion function such as Val or CInt to convert the string to a numeric value.

 


To illustrates the concepts presented above, create a new "Try It" project, and place the following code in Sub Main:

 

Const intDECIMAL_NUMBER_1 As Integer = 687

Const intDECIMAL_NUMBER_2 As Integer = 627

Const intHEXADECIMAL_NUMBER As Integer = &H2AFS

Const intOCTAL_NUMBER As Integer = &O1163S

Const strHEX_STRING As String = "BEEF"

Const strOCT_STRING As String = "411"

 

Dim strHexVal As String

Dim strOctVal As String

Dim intDecVal As Integer

 

strHexVal = Hex(intDECIMAL_NUMBER_1)

Console.WriteLine("The decimal number " & CStr(intDECIMAL_NUMBER_1) & " is " & strHexVal & " in hex.")

strOctVal = Oct(intDECIMAL_NUMBER_2)

Console.WriteLine("The decimal number " & CStr(intDECIMAL_NUMBER_2) & " is " & strOctVal & " in octal.")

Console.WriteLine("The Integer Constant specified as '&H2AF' evaluates to: " & CStr(intHEXADECIMAL_NUMBER))

Console.WriteLine("The Integer Constant specified as '&O1163' evaluates to: " & CStr(intOCTAL_NUMBER))

intDecVal = CInt("&H" & strHEX_STRING)

Console.WriteLine(strHEX_STRING & " in hex is equivalent to " & CStr(intDecVal) & " in decimal.")

intDecVal = CInt("&O" & strOCT_STRING)

Console.WriteLine(strOCT_STRING & " in octal is equivalent to " & CStr(intDecVal) & " in decimal.")

Console.ReadLine()

 

Run the project. The output is shown in the screen shot on the right:

 

Download the VB project code for the example above here.

 

If you wish to review number systems theory, a comprehensive tutorial in PDF format is available via the "Number Systems Tutorial" link below. This tutorial covers the binary, hexadecimal, and octal number systems including how to convert from one number system to the other and how to perform addition and subtraction in these systems.

 

Number Systems Tutorial