Les dades s'emmagatzemen a la memòria del microcontrolador en forma binària. Però per a la majoria de les aplicacions no és pràctic representar els valors en binari a l'hora d'escriure el programa. Per això hi ha altres formats.
És el format que utilitzem a la nostra vida quotidiana i, per tant, és el més apropiat per als números.
L'entrada d'un valor decimal en el programa es pot indicar de dues formes. La següent instrucció carrega un valor decimal a l'acumulador:
Valor = 214; // Valor decimal
Cada bit només pot valer 0 o 1. A la figura següent es representa un nombre de 8 bits amb el pes que correspon a cada bit.

El nombre representat (10111) correspon al valor 23 en decimal, com es pot veure a continuació:
1 x 1 = 1 1 x 2 = 2 1 x 4 = 4 1 x 16 = 16 Total 23
L'entrada d'un valor binari en el programa s'indica de la següent manera:
TRISD = 0b00010111; // Valor binari
És un format molt emprat en programació. Com necessitem xifres del 0 al 15 i només tenim símbols per a les 10 primeres, la resta es fan emprant lletres. La lletra A correspon al 10 i la lletra F al 15:
10 A 13 D 11 B 14 E 12 C 15 F
Els nombres hexadecimals tenen l'avantatge que cada xifra correspon a quatre bits (el que s'anomena un nibble, mig byte). A l'exemple següent ho podem veure:

El nombre representat correspon al valor 174.
A: 10 x 16 = 160 E: 14 x 1 = 14 Total 174
En un text escrit, els valors hexadecimals solen indicar-se amb una h al darrere; per exemple AEh.
L'entrada d'un valor hexadecimal en el programa es pot indicar així:
TRISD = 0xAE; // Valor hexadecimal
La base és 8, per tant les xifres van de 0 a 7 i cada xifra correspon a tres bits. Com és menys pràctic que l'hexadecimal (on cada xifra són quatre bits i un byte són dues xifres), cada cop es fa servir menys.
En un text escrit, els valors octals solen indicar-se amb Ox al davant; per exemple Ox263.
El nombre representat correspon al valor 179 en decimal, com es pot veure a continuació:
2 x 64 = 128 6 x 8 = 48 3 x 1 = 3 Total 179
L'entrada d'un valor octal en el programa es pot indicar així:
Valor = 0214; // Valor octal
Observem doncs que el zero a l'esquerra és important ja que converteix un nombre aparentment decimal a octal.
El codi ASCII codifica en números de 7 bits (de 0 a 127) les lletres (alfabet anglès), els números i els símbols.
Els elements del 00h al 1Fh són caràcters de control (emprats en els antics mòdems i impressores), els números van del 30h al 39h, les lletres majúscules del 41h al 5Ah i les minúscules del 61h al 7Ah
| Segon dígit | |||||||||||||||||
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | ||
| P r i m e r d í g i t |
0 | NUL | SOH | STX | ETX | EOT | ENQ | ACK | BEL | BS | HT | LF | VT | FF | CR | SO | SI |
| 1 | DLE | DC1 | DC2 | DC3 | DC4 | NAK | SYN | ETB | CAN | EM | SUB | ESC | FS | GS | RS | US | |
| 2 | espai | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | |
| 3 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? | |
| 4 | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | |
| 5 | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ | |
| 6 | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | |
| 7 | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | DEL | |
Com els números i les lletres estan ordenats, es pot conèixer el codi individual d'un caràcter sumant el nombre d'ordre al codi ASCII del primer. Així el codi del número 3 (33h) s'obté sumant 3 a 30h, codi del 0.
L'entrada d'un caràcter ASCII en el programa es pot indicar així:
Lletra = "M"; // Caràcter ASCII
És un format molt útil quan es vol treure números en una pantalla o un visualitzador. Els valors BCD fan servir quatre bits però aquests bits només conteten una xifra. Així el número 13 seria: 0001 0011 en lloc de 0000 1101.
Els valors BCD es poden emmagatzemar posant un dígit en cada byte (i sabem que sempre els bits 4 a 7 seran zero) o posant dues xifres a cada byte (una xifra a cada nibble) que és una forma més compacta.
Per entrar valors en BCD a una variable, podem fer-ho igual que entrant valors hexadecimals. Per exemple entraríem el valor 13 així:
LATD = 0x13; // Valor hexadecimal, equival a 13 en BCD

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.