HEX-BIN.txt ------------------------------------------------------------- While refreshing my memory on Hexadecimal and Binary notations (and the use of the logical operators , I found that it helped to take notes. This is a compilation of those notes. Some phrasing is entirely my own. So if you find any mistakes (other than grammar, sentence structure, or spelling! ) please inform me so I can correct my document file. This document should prove useful to the new programmers. A little info on Hexadecimal notation. Hexadecimal is a numbering system based on 16 elements. Digits are numbered 0 through F as follows: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Representing the digits 0 through 15. Hexadecimal system uses powers of 16. For example: &H19 (hexadecimal) represents 25 decimal. Let's see why. Starting from the right the power is 1. Therefore 9 X 1 = 9 Moving left the next is power is 16. Therefore 1 X 16 = 16 And 9 + 16 = 25. Let's try another. This time &HFF (hexadecimal) Again starting from the right (F=15) 15 X 1= 15 Moving left 15 X 16 = 240. And 240 + 15 = 255 So far we have looked at single byte hex values. Let's look at a 16 bit hex value. Remember 8 bits to the byte? Now we look at two adjoining bytes, or sixteen bits. &H1902 (hexadecimal) represents 6402 decimal. Again starting from the right 2 X 1= 2 Moving left 0 X 16 = 0 Moving left again <16 X 16 =256> 9 X 256 = 2304 Moving left again <16 X 256 = 4096> 1 X 4096 = 4096 And 2 + 0 + 2304 + 4096 = 6402 In basic hex values are preceeded by &H. For example &HFF or &H1902 In basic hex values can be determined by the command PRINT &HFF or PRINT &H1902. Decimal to hex is accomplished by PRINT HEX\$(255) or PRINT HEX\$(1902). Now let's look at the individual bits within a byte. Remember there are 8 bits to the byte and reading from Right to Left they increase in power by the power of 2. Binary notation reflects set bits with a 1. Non set bits with a 0. Let's look at one. 1 0 0 0 1 0 0 1 (This byte represents 137) As with hex we start at the right. 1 X 1= 1 Moving left 2 X 0 = 0 Moving left again 4 X 0 = 0 Moving left again 8 X 1 = 8 Moving left again 16 X 0 = 0 Moving left again 32 X 0 = 0 Moving left again 64 X 0 = 0 Moving left again 128 X 1 = 128 And 1 + 0 + 0 + 8 + 0 + 0 + 0 + 128 = 137 Logical Operators When you AND two numbers the results are in a new third number. For example: a = 137 b = 105 c = a AND b 1 0 0 0 1 0 0 1 This represents A <137> 0 1 1 0 1 0 0 1 This represents B <105> 0 0 0 0 1 0 0 1 This represents C <9> What occurs when you AND two numbers is that the computer compares the bits within the first number against the bits in the second number. If the bits are the same then they will remain the same in the third number. If they are not the same then the equivalent bits will be 0 in the third number. "Logical OR What occurs when you OR two numbers is that the computer compares the bits within the first number against the bits in the second number. If the bits are the same they will remain the same in the third number. If they are not the same then the bits will be 1 in the third number. For example: A=122 B=15 C=A OR B 0 1 1 1 1 0 1 0 This represents A <122> 0 0 0 0 1 1 1 1 This represents B <15> 0 1 1 1 1 1 1 1 This represents C <127> This quick little reference document composed by Earl Montgomery I hope it proves to be of some use to you.