Written By TheVBProgramer.
$ReqTestHarness$
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.

&H before a number means that the number is specified in hex:
Example:
Const lngHexNum As Long = &H2AF
Print lngHexNum
Output:
687
&O before a number means that the number is specified in octal:
Example:
Const lngOctNum As Long = &O1163
Print lngOctNum
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 CLng to convert the string to a numeric value.
Example:
Dim strMyHexNum As String
Dim lngDecimalValue As Long
strMyHexNum = InputBox("Enter a Hex Value:")
strMyHexNum = "&H" & strMyHexNum
lngDecimalValue = Val(strMyHexNum)
PRINT strMyHexNum; " in hex is equivalent to "; lngDecimalValue; " in decimal."
If the user entered "2AF" as input, the result would be:
2AF in hex is equivalent to 687 in decimal.
The following "Try It" code illustrates the concepts presented above:
Private Sub cmdTryIt_Click()
Const lngDECIMAL_NUMBER_1 As Long = 687
Const lngDECIMAL_NUMBER_2 As Long = 627
Const lngHEXADECIMAL_NUMBER As Long = &H2AF
Const lngOCTAL_NUMBER As Long = &O1163
Const strHEX_STRING As String = "BEEF"
Const strOCT_STRING As String = "411"
Dim strHexVal As String
Dim strOctVal As String
Dim lngDecVal As Long
strHexVal = Hex$(lngDECIMAL_NUMBER_1)
Print "The decimal number "; lngDECIMAL_NUMBER_1; " is "; strHexVal; " in hex."
strOctVal = Oct$(lngDECIMAL_NUMBER_2)
Print "The decimal number "; lngDECIMAL_NUMBER_2; " is "; strOctVal; " in octal."
Print "The Long Constant specified as '&H2AF' evaluates to: "; lngHEXADECIMAL_NUMBER
Print "The Long Constant specified as '&O1163' evaluates to: "; lngOCTAL_NUMBER
lngDecVal = CLng("&H" & strHEX_STRING)
Print strHEX_STRING; " in hex is equivalent to "; lngDecVal; " in decimal."
lngDecVal = CLng("&O" & strOCT_STRING)
Print strOCT_STRING; " in octal is equivalent to "; lngDecVal; " in decimal."
End Sub
Output:
Download the VB project code for the example above here.
add two hex value
how can we add two hex values from 2 text boxes and print the sum of them into another text box?
Private Sub AddTwoHex()
Private Sub AddTwoHex()
'assume text1 and text2 are text boxes that contain Hex values
'text3 will store the sum of text1 and text2 as a Hex value
Dim lFirstVal As Long
Dim lSecondVal As Long
Dim lSum As Long
'convert the two hex values to decimal
lFirstVal = Val("&H" & Trim(text1.Text))
lSecondVal = Val("&H" & Trim(text2.Text))
'now simply add them together
lSum = lFirstVal + lSecondVal
'convert the sum back into Hex and store in text3
text3.Text = Hex$(lSum)
End Function
Oops  That should say "End
Oops  That should say "End Sub", not "End Function"
YEAH!!
THANKSSSS!~~~ WORKS GREAT!!!!!!!!!
math functions
how do you do "does not divide by X"?
like i know in python you do %
for example:
if X % 2 then
x*3
end if
It helped me.
I was getting a value returned in negative. This tool gave me a hint to use cLng() function .
converter for decimal to hexadecimal
sir,mom
can you gave me a program that coverts a decimal value to hexadecimal
but not more than 255 but not less than on 0
if there a program just email me on my yahoomail in johnrob17k@yahoo.com
i will wait for your response
can you do that in TextBox??
can you do that in TextBox??
Great! Thanks.
Great! Thanks.
It's Unsigned
Using the "&H" or the "&O" prefixes returns unsigned values. If you are in range where that could be an issue (for example 2 to the 16th) then appending a type declaration character will be needed to make the value come across correctly. For example this:
?&H9000,&H9000& will return this:
28672 36864
I put the link to the relevant support article in "Homepage" link.
Try putting an ampersand at
Try putting an ampersand at the end, i.e. print &hff00&
Martin
vb6 hex fails
try print &hff00
you should get decimal 65280, but instead you get 256, which is wrong.
hex &hffffff00 is 256
what a load of pants
2 Bytes vs 4 Bytes
I believe what is happening is that because &hff00 is only 2 bytes long, VB assumes a smaller variable size (2 bytes instead of 4bytes) . You can 'trick'/force VB to do it by typing: print &h1ff00  &h10000
in this case both numbers are >2 bytes forcing VB to use 4 byte calculations and then you do get 65280