We will explore three basic numbering systems, called decimal,
binary, and hexadecimal.
A base 10 number system,
the decimal system, is based on ten numbers: 0, 1, 2, 3, 4, 5, 6, 7,
8, and 9. The next number in the sequence is a combination of two digits,
where the second digit is multiplied by 10. 10 is equal to (1 X
10) + 0. Two digits may go as high as 99, and then a third digit is
needed for the next number. The third digit is multiplied by 100. This
concept continues with the next digit multiplied by 1000, the next by
10,000, and so on. A number like 6594 would be calculated as (6
X 1000) + (5 X 100) + (9 X 10) + (4 X 1). This concept is easy to grasp,
because we use the decimal system in every day applications.
| |
Computers work in a digital environment that has only two variables, 0 and 1. All numbers in the decimal system may be translated into 0's and 1's of the binary system. By having only one digit or box, there are two possibilities. This binary system is a base 2 numbering system that uses only two numbers, 0 and 1. |
| By having two digits or boxes, there are four possibilities. The upper number is the decimal counting system and the bottom numbers represent the binary counting system. In binary, the first digit (right box) corresponds to a decimal value of 0 or 1, while the second digit (left box) corresponds to a decimal value of 0 or 2. The multiples of the decimal counting system are 1, 10, 100, 1000, etc. The multiples of the binary counting system are 1, 2, 4, 8, 16, 32, 64, 128, etc. | ![]() |
| By having three digits or boxes, there are eight possibilities. The upper number is the decimal counting system and the bottom numbers represent the binary counting system. The first digit (right box) may have a value of 0 or 1. The second digit (middle box) may have a value of 2 or 0 and the last digit (left box) may have a value of 4 or 0. |
|
|
![]() |
By having four digits or boxes, there are sixteen possibilities. |
| (Remember that 0 is a number, 0-15) The upper number is the decimal counting system and the boxes represent the binary possibilities. |
| This is the same diagram, but now you only see the binary representation. | ![]() |
| The first digit (right box) may have a value of 0 or 1, and the second digit may have a value of 2 or 0, the third digit may have a value of 4 or 0, and the last digit (left box) may have a value of 8 or 0. | |
| Finally, we see all the combinations, with the upper numbers representing the decimal counting system followed by the [hexadecimal counting system]. The bottom number is the binary equivalent of the upper numbers. | |
|
|
Two digits or slots are needed to represent the next number in the
sequence. The decimal number 16 would equal 10 in hexadecimal.
(1 X 16) + 0. Continuing in the series, 17(decimal) would equal
11(hexadecimal), 18(decimal) would equal 12(hexadecimal),
and so on until 31(decimal), which would equal 1F(hexadecimal).
The next hexadecimal number would be 20, (2 X 16) + 0, which would
equal 32 in decimal. The hexadecimal number 9C would equal (9 X
16) + 12 = 156 in decimal.
| multiple of each digit | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| binary counting system | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
The binary number 10110110 is the equivalent of 182 in
decimal. That is, (128 x 1) + (64 x 0) + (32 x 1) + (16 x 1) + (8x0) + (4 x
1) + (2 x 1) + (1 x 0).
| multiple of each digit | 256 | 16 | 1 |
|---|---|---|---|
| hexadecimal counting system | 1 | A | F |
The hexadecimal number 1AF is the equivalent of 431 in
decimal. That is (256 x 1) + (16 x 10) + (1 x 15). The multiples of the
digits in the hexadecimal counting system are 1, 16, 256, etc.
Remember that MIDI digital information is transmitted using the binary system. The serial interface translates musical actions or events into binary numbers that it receives and sends one at a time down a MIDI cable. By understanding the binary counting system, we can look at MIDI information and understand what is being transmitted through a MIDI cable. The binary number 10010000 is not easy to calculate, but reading the number in the hexadecimal equivalent 90 makes more sense when it is applied to a MIDI message.
10010000, 00110111, 01111011 = 90, 37, 7B, which may be
interpreted as;
Note ON, MIDI channel 1, play the 55th note, at a velocity
of 123 out of 127 possibilities.
| multiple of each digit | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
|---|---|---|---|---|---|---|---|---|
| binary counting system | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
If we look at the binary number above there is an easier way to add up the
number. Instead of counting the binary number as (128 x 1) + (64 x 0) + (32 x
1) + (16 x 1) + (8x0) + (4 x 1) + (2 x 1) + (1 x 0) = 182 (Decimal),
split the binary number into two sections.
| multiple of each digit | 8 | 4 | 2 | 1 | 8 | 4 | 2 | 1 | |
|---|---|---|---|---|---|---|---|---|---|
| binary counting system | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | |
| hexadecimal counting system | B | 6 |
(8 X 1) + (4 X 0) + (2 X 1) + (1 X 1) = 11 or B in
hexadecimal
(8 X 0) + (4 X 1) + (2 X 1) + (1 X 0) = 6 in
hexadecimal
B6 hexadecimal number (11[B] x 16) + 6 = 182 in
decimal
If we use eight binary digits we have 256 possible
numbers. 00000000 to 11111111. We can use two hexadecimal numbers
to represent 256 numbers, 00 to FF. All MIDI events may be
represented with eight binary or two hexadecimal numbers.
The program MAXplay is needed to run the document Conversion of Numbers. If you would like information about the application Max, please contact Opcode Systems, Inc.. You may download a free copy of this application by clicking on the MAXplay icon below. This is a run-time only version of the application Max; it may not be used to create new Max documents. MAXplay will work only on a Macintosh computer.