I have a question.
I want create MIDI file that is binary file with Hexadecimal Number. My soft method has all function with using decimal number property. I need convert Numbers to Hexadecimal Number.
I get to know &h and Hex method. But Hex method is result to return strings. Then I try Val or CDbl method, but this result is decimal number only maybe.
Dim theNo As Integer
theNo=Val("&h"+ Hex(123)) // this result is 291 as decimal
How to change decimal number converts Hexadecimal Number?
Do I need original method create?
Please teach me.
An integer is just a number; whether it’s shown in hex or in decimal shouldn’t matter, the value of the integer will be the same.
Thank you replay. I realize that. Integer property is able to have hexadecimal. But I want converting. I use set &h number to integer. Just I want 100 to Convert to &h64 or so.
Numbers are stored as … well numbers…
100 is a number… &h64 is a representation of that number… but it still has a value of 100
you can create a STRING (ie. representation) as s="&h"+hex(100) as you previously noted.
your MIDI file is just a stream of BYTES each one containing a value between 0 and 255
So it really does not matter what “base” you do you calculations in…
if you need to create a stream of values… use CHRB(100) [watch for encoding issues]
Thank you replay. Oh I test it.
Dave sann, thank you! I made it.
I tested. In result I see 64 on binary editor! That is very easy. Thank you very much
If you want to pass a hexadecimal number to a signed value type directly in the IDE, you need to use Ctype() to do it.
Hex() and it’s similar variants are for turning text strings representing a number, i.e. “#FFFFFF” into an actual value type.
dim Some_Number as integer
Some_Number = Ctype(&hFFFFFFFF, Integer)
But you should understand the difference between signed, unsigned etc number
This is to share some information to everyone here Hexa decimal number system has values from 0-9 and A-F where A=10, B=11, C=12, D=13, E=14 and F=15.
Hope this one helps you. This information I read it from this link.
Thank you AbelB!
My realization had grown. In OS, dose it uses Hexa decimal? Right?
Hexadecimal , Octal or anything else is a REPRESENTATION of a NUMBER, nothing more
100 in decimal is &H64 displayed as Hexadecimal and &O144 displayed in Octal… but it is the SAME numeric value, and that is all a computer cares about.
Also be aware if you start representing numbers >255 that you need to consider the environment you are in. is it LITTLE ENDIAN? or BIG ENDIAN? as this affects the ORDER of the bytes