unsigned int to 2 bytes

Hello.
I'm working in a project that mostly uses unsigned int variables (2 bytes).

With xbee i can only send bytes
If i want to store some variable in eeprom, i can only store bytes

how can I change from/to unsigned int to/from 2 bytes?

thank you

http://www.arduino.cc/playground/Code/EEPROMWriteAnything

#include <EEPROM.h>

template <class T> int EEPROM_writeAnything(int ee, const T& value)
{
    const byte* p = (const byte*)(const void*)&value;
    int i;
    for (i = 0; i < sizeof(value); i++)
        EEPROM.write(ee++, *p++);
    return i;
}

template <class T> int EEPROM_readAnything(int ee, T& value)
{
    byte* p = (byte*)(void*)&value;
    int i;
    for (i = 0; i < sizeof(value); i++)
        *p++ = EEPROM.read(ee++);
    return i;
}

Is this code already built in 0018? or is needed to define that functions in my sketch?

Other question is…

unsigned int myvariable = 579;
unsigned int my2variable = 3355;
EEPROM_writeAnything(0, myvariable);
EEPROM_writeAnything(2, my2variable);

is this code right? if i save a unsigned int in byte 0, i will use byte 0 and 1. In the next operation i must use byte 2 and 3

and the last question: (by now)

struct config_t
{
    long alarm;
    int mode;
} configuration;
EEPROM_writeAnything(0, configuration);

will the memory map looks like this?
byte 0: 1st 1/4 alarm
byte 1: 2nd 1/4 alarm
byte 2: 3rd 1/4 alarm
byte 3: 4th 1/4 alarm
byte 4: 1st 1/2 mode
byte 5: 2th 1/2 mode

thanks

You might want to consider using the built in functions the Arduino has for extracting the low and high bytes.

http://arduino.cc/en/Reference/LowByte
http://arduino.cc/en/Reference/HighByte

thank you very much. very nice functions but... what about 4-bytes types?