关于读取2进制数据后转换成16进制显示出错的问题
我有一个文件,用winhex打开显示是如下的
4D 5A 90 00 03 00 00 00……………………………………
我现在要读取前面4个16进制数据,我是以2进制方法读取后,再转换成16进制显示出来,不过显示出来的答案有点问题,4D 5A 90 00 这4个没问题能读出来,但是后面怎么还跟着一个"Text"呢?
显示的结果是“4D5A9000Text”
代码如下
int FileHandle;//定义文件句柄
char *DateData;//定义读取指针
DateData= new char[4];
char *OutData;//定义输出指针
OutData= new char[4];
//FileNamePath是文件路径变量,AnsiString格式
FileHandle=FileOpen(FileNamePath,fmOpenReadWrite);
FileRead(FileHandle,DateData,4);
BinToHex(DateData,OutData,4);
ShowMessage(OutData) ;
free(DateData);
DateData = NULL;
free(OutData);
OutData = NULL;
4D 5A 90 00 03 00 00 00……………………………………
我现在要读取前面4个16进制数据,我是以2进制方法读取后,再转换成16进制显示出来,不过显示出来的答案有点问题,4D 5A 90 00 这4个没问题能读出来,但是后面怎么还跟着一个"Text"呢?
显示的结果是“4D5A9000Text”
代码如下
int FileHandle;//定义文件句柄
char *DateData;//定义读取指针
DateData= new char[4];
char *OutData;//定义输出指针
OutData= new char[4];
//FileNamePath是文件路径变量,AnsiString格式
FileHandle=FileOpen(FileNamePath,fmOpenReadWrite);
FileRead(FileHandle,DateData,4);
BinToHex(DateData,OutData,4);
ShowMessage(OutData) ;
free(DateData);
DateData = NULL;
free(OutData);
OutData = NULL;
...全文
相关推荐
将图片转换成16进制代码,同时也可将16进制代码转换成jpg图片
因此,图片可以被视为一串二进制数据。2. **16进制表示**: 为了便于人类阅读和理解,二进制数据通常会转换成16进制形式。
串口数据读取,ascii和16进制2种方式
进行其他处理 ...}```2. **16进制方式读取串口数据** 16进制(Hexadecimal)是一种更便于人类识别的二进制表示法,常用于编程和调试。
matlab 读取bin文件 并且用16进制显示
读取bin文件 并且用16进制显示 bin文件是二进制文件,是文件格式binary的缩写。虚拟光驱文件常用bin作为后缀,但这并不意味着所有bin文件都是虚拟光驱文件。工程应用中,从flash读取的
c++实现十进制转换成16进制示例
在C++编程中,将十进制转换成16进制是一项常见的任务,特别是在处理数据表示、字符串操作或底层系统编程时。本文提供了一个简单的示例代码,演示如何实现这个功能。以下是详细的步骤和关键知识点:标题:“
16进制如何转换成float型数据
2. **类型匹配**:确保转换过程中涉及的所有类型都是正确的,比如字节数组与浮点数之间的类型转换。3. **边界检查**:在读取数据时注意检查数组的边界,避免越界访问导致程序崩溃。


