跪求:请大侠帮帮我!怎样用C语言编写并读取按二进制存储,每三个字节存储两个数,一个数12bit的.dat文件
截图是.dat文件里的数据。这个文件是MIT_BIH的数据库(有关心电图的数据库在这个可以下载到http://www.physionet.org/physiobank/d...
截图是.dat文件里的数据。这个文件是MIT_BIH的数据库(有关心电图的数据库在这个可以下载到http://www.physionet.org/physiobank/database/mitdb/)数据文件[.dat],按二进制存储,每三个字节存储两个数,一个数12bit。是C语言编写,不是用C++语言。要有详细的程序和思路。真诚的谢谢您了!能在VC上运行。
展开
4个回答
展开全部
每三个字节存储两个数,一个数12bit。这个怎么解析?
还有你要画图还是解析出来数据就行了?
还有你要画图还是解析出来数据就行了?
追问
一个字节是8位,三个节是24位,读的时候按照12位一个数去读,有两个数。现在是能用C语言把数据正确的读出来就行了。
追答
#include "stdio.h"
union
{
unsigned char byte[3];
struct
{
unsigned int data1:12;
unsigned int data2:12;
};
}s;
int main(int argc, char* argv[])
{
s.byte[0]=0x12;
s.byte[1]=0x34;
s.byte[2]=0x56;
printf("0x%x\r\n", s.data1);
printf("0x%x\r\n", s.data2);
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设3个字节是 AB CD EF
2个数是什么?0XDAB和0XEFC?
你不会要我们去看所有资料整理出这些吧?
读数据的话,就字节拼凑,若是上面的描述就是
data[n]=byte[n*3]+((byte[n*3+1]&0x0f)<<8);
data[n+1]=(byte[n*3+1]>>4)+(byte[n*3+2]<<4);
2个数是什么?0XDAB和0XEFC?
你不会要我们去看所有资料整理出这些吧?
读数据的话,就字节拼凑,若是上面的描述就是
data[n]=byte[n*3]+((byte[n*3+1]&0x0f)<<8);
data[n+1]=(byte[n*3+1]>>4)+(byte[n*3+2]<<4);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
观摩中。。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询