首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

在C++中怎样定义一个半字节变量?该怎么解决

2012-02-16 
在C++中怎样定义一个半字节变量??我要把我定义个一数据结构体,写入文件,写进去的数字是ASC码,我让写进去的

在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
...

热点排行