[quote]I always thought the HEX code was a hexadecimal notation version of the binary info the machine runs on. NO? I must be missing something then? After all the HEX code gets transferred to the chip memory but is that not the binary program the machine runs on?[quote]

YES! They are two ways of saying the same thing.

HEX notation is usefull to humans who don't read binary very efficiently, but can read HEX fairly well. HEX numbers and binary numbers have a 1 to 1 corrospondance, so they are two ways of saying the same thing.

HEX can only express binary digits 4 bits at a time, so one hex represents 4 binary digits, 2 hex digits represent 8 binary digits, and so on

The only exception to this is PIC instructions are 14 bits long, so they need a 4 digit hex number to represent them; 4 hex digits is 4x4=16 bits for 2 extra bits at the top end, so any instruction in hex will never be larger then 7FFF

(The actual largest instruction is 7EFF, which is ADDLW H'FF', or add literal to W. The instruction set actually gives the 7th bit as a don't care (1 or 0), but also says 0 is prefered there, and that is what the compiler will give.) (I know cause I just tried it.)