问两个基础有关问题

问两个基础问题
1、0xffff是占两个字节吗?为什么?
2、本来在定义通讯协议时,数据包长度用四个字符串表示,如 "0012 ",表示12个字节数据包,现在经理说要用无符号整型表示,占用字节数少,效率高,我有点不明白,在数据包中怎么能传整型?传送的格式最终不都是一个字符串形式吗?比如上面的你表示成12,最终在send(char*   context,int   len)也同样要把12转成字符串来传送,搞不懂他是什么意思,谁能帮我解释一下?

------解决方案--------------------
赫赫,你应该是这样做
unsigned int n = 1;
char sz[3];
memcpy(sz, &n, sizeof(unsigned int));

我看你们经理的意思是传送内存阿,这样确实会少占用字节