日期:2014-05-16  浏览次数:20744 次

在C++中怎样定义一个半字节变量??
我要把我定义个一数据结构体,写入文件,写进去的数字是ASC码,我让写进去的数字以BCD码的形式存储,怎么处理??
我定义的结构体如下:

typedef struct phonebook_data{
char name[8];
char phone[8];
}BookData;

我打开文件的形式是以“wb”。写入文件后,用U-E打开显示如下:
64 64 64 64 00 00 00 00 31 32 33 34 00 00 00 00 ;
但我希望它显示如下:
64 64 64 64 00 00 00 00 12 34 00 00 00 00 00 00 ;

主要解决问题:把16位的电话码存入8字节变量中。所以我想可不可以定义半字节的变量。

请教各位有没有处理的方法,先谢了。

------解决方案--------------------
有点意思.....
电话号码还好说, 0-9, 最多每个数占4位(9:1001)

你所说那个半字节变量, 从系统的构造来说应该是不存在的.

有一个办法, 就是存为long int 型, 只要4个字节就可以了.
------解决方案--------------------
做个数据转换不就得了?

------解决方案--------------------
这样压缩, 也可以.
------解决方案--------------------
不管多少字节可以进行位操作,如
unsigned char b;

b |= 0x01; 就是把b的最后位为1
b |= 0x02; 第2位
b &=(~0x01) 就是把b的最后位为0
...