精华内容
下载资源
问答
  • 读入十六进制txt文件转十进制txt输出
  • 最近学习了图片的转换,就学习了一下图片从二进制转换成十六进制十六进制TXT文件转换成图片形式。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; ...

    最近学习了图片的转换,就学习了一下图片从二进制转换成十六进制,十六进制TXT文件转换成图片形式。

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
    
    
    namespace pictu
    {
        public partial class Form1 : DevExpress.XtraEditors.XtraForm
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //从文件目录中将图片读入到IO流中
                FileStream fs = new FileStream(@"E:\图片转换测试\发送图片\1.jpg", FileMode.Open, FileAccess.Read);
                //对数据流进行编码八位二进制
                BinaryReader br = new BinaryReader(fs);
                //形成十六进制最后存储的txt文件
                StreamWriter sw = new StreamWriter(@"E:\图片转换测试\发送图片\1.txt");
                //得到数据流的长度
                int length = (int)fs.Length;
                while (length > 0)
                {
                    byte tempByte = br.ReadByte();
                    //将八位二进制转换为十六进制字符串形式
                    string tempStr = Convert.ToString(tempByte, 16);
                   //写入txt
                    sw.WriteLine(tempStr);
                    length--;
                }
                //关闭IO流释放资源
                fs.Close();
                br.Close();
                sw.Close();
            }
    
    
            /// <summary>
            /// 原理与上面基本相同,仔细看就懂了
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void button2_Click(object sender, EventArgs e)
            {
                FileStream fs = new FileStream(@"E:\图片转换测试\接收图片\1.jpg", FileMode.Create, FileAccess.Write); //创建1.jpg图片
                BinaryWriter bw = new BinaryWriter(fs);
                StreamReader sr = new StreamReader(@"E:\图片转换测试\发送图片\1.txt");         //打开你的16进制的txt
                while (sr.Peek() != -1)
                {
                    string tempStr = sr.ReadLine();
                    byte tempByte = Convert.ToByte(tempStr, 16);
                    bw.Write(tempByte);
                }
                fs.Close();
                bw.Close();
                sr.Close();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            }
        }
    }

     

    转载于:https://www.cnblogs.com/xiaobaidashu/p/9361270.html

    展开全文
  • 1.现状:程序中接收到的数据十六进制,可以直接保存为hex文件,但对于数据处理就有点困难,第一,十六进制文件的打开需要专门的软件(UltraEdit软件);第二,十六进制不直观,因此,有必要将数据存储为txt文件...

    1.现状:程序中接收到的数据为十六进制,可以直接保存为hex文件,但对于数据处理就有点困难,第一,十六进制文件的打开需要用专门的软件(UltraEdit软件);第二,十六进制不直观,因此,有必要将数据存储为txt文件,而且存储形式为十进制。但是,txt文件是以字符流的形式进行读取的,不能直接将十进制数存储为txt。

    2.解决方案:

    (1)点击打开链接 根据此链接中的讲解可以初步了解存储数据为txt文件的整体思想,但是这个例子中的程序得出的结果是不对的,会出现乱码和显示的字符串不完整的现象。

    (2)点击打开链接根据此链接可以解决上述的几个问题,总结出会出现上述问

    题的主要原因是txt文件的读取是以单字节的形式,而现在的字符体系为Unicode字符集

    为双字节。

    (3)点击打开链接由上面两步的学习可以得出,字符串可以存储为txt文件,因

    此解决最终问题的思想便是先将十六进制转化为十进制,然后将十进制转化为CString形

    式,最后利用前两步积累的知识存储为十进制的txt文件,最终代码如下:

    char t_Str[132] = {0};
    	TCHAR Desktop_path0[255];
    	SHGetSpecialFolderPath(0,Desktop_path0,CSIDL_DESKTOPDIRECTORY,0);
    	SYSTEMTIME curTime;
    	GetLocalTime(&curTime);
    	sprintf( t_Str, "Data_%d_%d_%d_%d_%d_%d.txt",curTime.wYear,curTime.wMonth,curTime.wDay,curTime.wHour,curTime.wMinute,curTime.wSecond);
    	CString filename = (CString)Desktop_path0 + (CString)"\\" +  (CString)t_Str;
    	//打开文件
    	mFile.Open(filename,CFile::modeCreate|CFile::modeWrite);
    	//设置数据格式
    	CString m_dataOfCS("");//最终的字符串数据格式
    	int m_dataOfInteger[1000][2048]={0};//由char型转化为整型
    	for(int i=0;i<m_fps;i++)
    	{
    		for(int j=0;j<2048;j++)
    		{
    			m_dataOfInteger[i][j]=dataOfCapture[i][j];
    			CString str;
    			str.Format(_T("%d"),m_dataOfInteger[i][j]);
    			m_dataOfCS= m_dataOfCS + str + _T("\r\n");
    		}
    	}
    
    	mFile.SetLength(0);
    	WORD unicode = 0xFEFF;  //这句重要
    	mFile.Write(&unicode,2);  //这句重要
    	//mFile.Write(m_recData,2048);
    	mFile.Write(m_dataOfCS,m_dataOfCS.GetLength()*2);
    	mFile.Flush();
    	mFile.Close();


    展开全文
  • txt中的内容是4E6574776F726B205365637572697479...但是运行后的不是txt中的十六进制内容, #include #include #include #include typedef unsigned char BYTE; typedef unsigned int DWORD; /* 32 bit data t

     txt中的内容是4E6574776F726B205365637572697479
    但是运行后的不是txt中的十六进制内容,

    #include<iostream.h>
    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    typedef unsigned char       BYTE;
    typedef unsigned int        DWORD;          /* 32 bit data type */

    BYTE hex_value(BYTE value)
    {
     return ( ((value & 0x7f) >= 'A') ? (value - 7) : value)   & 0x0f;
    }

    void compress(BYTE  *dest, BYTE  *source, DWORD pair)
    {
     while (pair)
     {
      pair--;
      *dest = (hex_value(*source++) << 4);
      *dest++ += hex_value(*source++);
     }
    }
    int main()
    {
     FILE *fp;
     unsigned char buffer[50];
     unsigned char buf2[25];
     
     if((fp=fopen("f1.txt","ab+"))==NULL)
     {
      cout<<"Cannot open the des_plain.txt"<<endl;
      exit(0);
     }
     fread(buffer,32,1,fp);
     compress(buf2,buffer,16);
     for(int i=0;i<16;i++)
     {
      printf("%02x",buf2[i]);

     }
     
     
     fclose(fp);
     
     return 0;
    }

    read_txt.cpp E:\VCtest

    展开全文
  • 十六进制文件txt

    2019-06-11 13:32:56
    //****××××××日期 精确到毫秒 + R/W(读/写)+ 数据 //写入格式为2019-06-10 16:00:03:0919 R 00 FF 00 0D 80 01 00 00 08 5A DB 54 //*** 以下为具体实现过程: //.CPP #define WRITE_SIZE 1024 ...

    //****××××××日期 精确到毫秒        +  R/W(读/写)+ 数据
    //写入格式为2019-06-10 16:00:03:0919  R      00 FF 00 0D    80 01 00 00    08 5A DB 54
    //***

    以下为具体实现过程:

     

     

    //.CPP
    #define   WRITE_SIZE			1024
    CMutex    g_clsWriteMutex(FALSE, NULL);
    //.H
     CFile     file;
     CString   m_strFilePath;
     CString   strPath;
     CString    filePath;
    
    //.CPP
    CString     GetFilePath()
    {
    	TCHAR pFileName[MAX_PATH + 1];
        GetModuleFileName(NULL, pFileName, MAX_PATH);
    
    	strPath = pFileName;
        filePath = strPath.Left(strPath.ReverseFind('\\'));
       return  filePath;
    }
    
    CString GetSYStime()
    {
    	SYSTEMTIME st = { 0 };  
    	GetLocalTime(&st);  //获取当前时间 精确到ms
    	CString strSysTime;
    	strSysTime.Format("%d-%02d-%02d %02d:%02d:%02d:%04d",
    			st.wYear,
    			st.wMonth,
    			st.wDay,
    			st.wHour,
    			st.wMinute,
    			st.wSecond,
    			st.wMilliseconds);
    //返回格式为2019-06-10 16:00:03:0919
    	return strSysTime;
    }
    //****××××××日期 精确到毫秒        +  R/W(读/写)+ 数据
    //写入格式为2019-06-10 16:00:03:0919  R      00 FF 00 0D    80 01 00 00    08 5A DB 54
    //***
    void WriteToFile(BYTE m_data[64],CString strType)
    {
    	g_clsWriteMutex.Lock();
      //这句调用是放在程序初始化中的,地址仅取一次即可---暂且放置此处
        m_strFilePath.Format(_T("%s%s"),GetFilePath(),_T("\\Data.txt"));
    
    	CString str;
    	WORD unicode = 0xFEFF;  
    	BYTE szBufferToWrite[64];
    		ZeroMemory(szBufferToWrite, 64);
    		memcpy(&szBufferToWrite[0], m_data, 64);
    	/*CFile file;*/
    	/*CString m_strFilePath="Data.txt";*/
    	CString strSystime;
    	strSystime = GetSYStime();
    	if (file.GetFileName().IsEmpty())
    	{                      
    		file.Open(m_strFilePath,CFile::modeCreate|CFile::modeWrite);
    	}
    	else
    	{
    		try
    		{
    			file.SeekToEnd();
    			file.Write((unsigned char *)(strSystime.GetBuffer(0)),strSystime.GetLength());
    			file.Write("  ",2);
    			file.Write(strType, strType.GetLength());
    			file.Write("  ",2);
    			for(int i=0;i<64;i++)
    			{
    				str.Format(_T("%02X"),szBufferToWrite[i]);//%#X
    				file.Write(" ", 1);
    				if(i%4==0)
                    file.Write("   ", 3);//写入3个空格
    				file.Write(str,str.GetLength());
    			//file.Flush();
    			/*file.Close();*/
    			}
    			file.Write("\r\n", 2);
    		}
    		catch(CFileException *e)
    		{
    			file.Abort();
    			e->Delete();
    		}
    	 }
    	g_clsWriteMutex.Unlock();
    }

    实际操作:

    char *pBeginPtr  char类型数据

    int uSrcSize  数据长度

    void WriteToFileDepth(char *pBeginPtr ,int uSrcSize)
    {
    	int data1;
    
    	CString str;
    	CFile file;
    	CString m_strFilePath="E:\\Data16.txt";
    
    	if(file.Open(m_strFilePath,CFile::modeCreate|CFile::modeReadWrite|CFile::modeNoTruncate))
    	{
    		//file.Seek(0,CFile::end);
    		for(int iStep = 0; iStep < uSrcSize; iStep ++)
    		{ 
    			data1 =(unsigned char) pBeginPtr[iStep];
    
    			str.Format("%02x",data1);
    			file.Write(" ",1);
    			file.SeekToEnd();
    			file.Write(str,str.GetLength());
    			//file.Write("\r\n",2);
    		}
    		file.Write("\r\n",2);
    		file.Close();
    	}
    }

    保存好的格式为:
     fa f5 06 71 00 b4 00 b4 00
    fa f5 06 71 00 d2 00 8c 00
    fa f5 06 71 00 64 00 32 00
    fa f5 06 71 00 00 00 00 00
    fa f5 06 71 00 00 00 00 20
    fa f5 06 71 00 00 00 00 20
    fa f5 06 71 00 00 00 00 20
    fa f5 06 71 00 00 00 00 00
    fa f5 06 71 00 00 00 00 00

     

    以下未验证:

    每次看到人家的十六进制输出,对齐的很好,ff就显示了,而我的总是0xffffffff。
    如果是
    "%02x",是以0补齐2位数,如果超过2位就显示实际的数;
    "%hhx" 是只输出2位数,即便超了,也只显示低两位;
     
    因此有了"%02hhx"

    点击(此处)折叠或打开
    void hexdump(char *buf, int num)
    {
    . int i;

    . for(i = 0; i < num; i++) {
    . . printf("%02hhx\t", buf[i]);
    . . if ((i+1)%8 == 0) {
    . . . printf("\n");
    . . }
    . }
    . printf("\n");
    }

     

    要输出2个字节的16进制数,可以在printf中使用%02x或者%02X格式,同时将值转为unsigned char型。

    一、printf为格式化输出函数,可以将变量以各种格式化方式输出。

    二、格式化输出16进制的格式字符串为%x或%X。

    当输出的16进制数带有字母a~f时,两种格式字符串输出结果会有区别:

    1、%x格式,那么输出的是小写的a~f;

    2、%X格式,那么输出的是大写的A~F.

    三、要固定输出两个字节,可以使用%02x或者%02X,其中02的意思是,输出2个字节,不足补0. 不过如果实际值超过2字节,这个就会输出实际值了。

    所以要绝对输出2字节,需要将数值转为unsigned char型,保证输出不会超过。

    即将n以2字节16进制输出,写作:


    printf("%02x",(unsigned char)n);

    展开全文
  • 前面一篇文章介绍了在FPGA仿真中如何利用ModelSim将...今天就来讲一讲如何将txt文本中的的十六进制数据导入到工程中作为信号源进行仿真: parameter LINUX = 1'b0 , parameter IMG_LEN = 256*256; reg...
  • jpg图片转换成十六进制字符文件

    热门讨论 2013-01-19 23:20:21
    该程序主要用于将jpg图片的自己流转换为十六进制字符串 输入文件为in.jpg 输出文件为in.txt
  • MATLAB读取十六进制文件

    万次阅读 2017-09-06 10:52:16
    MATLAB读取串口调试助手保存的十六进制txt文件
  • 设定以utf-8无BOM格式保存的文件foo.txt的内容如下:abc你好现在我们以byte为单位读取文件内容,并显示每个byte的16进制和10进制表示。if __name__ == '__main__':f=open('foo.txt' ,'rb')f.seek(0,0)while True:...
  • load,textread或者importdata文本(txt)格式的文件,只能识别数据,对其中的文本无法读取。 可以使用fscanf或者sscanf的方式读取, 思路为:定义cell矩阵,先全部以字符的方式读入,再将其中的数字转换为数据格式...
  • 点击上方蓝字可直接关注!方便下次阅读。如果对你有帮助,麻烦点个在看或点个赞,感谢~工作与写公众号的时间仍在平衡中......今天和大家分享一个十六进制文本转成十六进制字符并存储到二进制...
  • d:\temp\example.txt&quot;, CFile::modeCreate | CFile::modeReadWrite); str.Format(_T(&quot;%02x&quot;), ucData);//将ucData转换为2位16进制数,并存入str file.Write(str.Ge...
  • C语言读取txt里面的图像数据字符串换成十六进制然后保存为bmp格式的图像文件 一、现在因为某种原因,图片的数据是放在image_data.txt文件里面,现在我需要把image_data.txt里面的数据读出来然后换为十六进制,...
  • // 读取十六进制文件(main.hex),并将其按Hex格式规定,对不同格式域进行划分// 将划分后的格式写入main.txt文件,根据Hex格式,对响应的Flash存储单元赋值// 将Flash存储单元写入main_formated.txt中// 请将main....
  • 博主推荐:获取更多 linux文件内容查看命令 收藏:linux命令大全od命令用于输出文件的八进制、十六进制或其它格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符。常见的文件为文本文件和二进制文件...
  • C语言 C语言读取十六进制文件.hex

    千次阅读 2014-08-29 10:50:22
    // 读取十六进制文件(main.hex),并将其按Hex格式规定,对不同格式域进行划分 // 将划分后的格式写入main.txt文件,根据Hex格式,对响应的Flash存储单元赋值 // 将Flash存储单元写入main_formated.txt中 //...
  • 数据格式为1位符号位,1位整数位,8位小数位。 N=64; fid = fopen('e:\sin.txt','r'); for i = 1 : N;... num(i) = fscanf(fid, '%x', 1) %从fid所指的文件以16进制方式读出数据 if(num(i)>512) nu...
  • 在官网找到这个下载地址 下载之后记得校验哈希值 ...解压后,添加个这个路径的环境变量即可在终端运行 ...一个Linux实用程序的简化版本,用于把文件以16进制形式的内容显示 >hexdump -h Usage: hexd.
  • 补充说明一下: 我是先fopen创建打开了一个.jpg的文件,然后将FF D8 开头,FF D9 结束的 数据都写进去了,但是打开图片的时候显示文件可能已损坏,但是我将其,JPG的后缀改成.TXT,然后将里面的数据拷贝出来, ...
  • 在python中想要输出十六进制字符串 print '\xAA\x00................' likewise 我们也会想要从txt文件中读取字符串再以十六进制发送
  • 模块包含了下面的各种转换: 二进制转十进制二进制转化为八进制二进制转化为十六进制 八进制转化为十进制八进制转化为二进制八进制转化为十六进制 十进制转二进制十进制转化为八进制十进制转化为十六进制 十六进制...
  • linux 十六进制查看

    千次阅读 2012-11-13 15:23:25
     顾名思义是查看八进制,可以通过指定参数为查看十六进制  -A 指定左边侧栏显示的地址基数,默认为八进制  -t 指定输出单元的进制格式和字节数  -x = -t x2 输出单元为双字节(注意:每单元内排列顺序从左到...
  • 我的数据是这样的,是老师给的一段胎儿心电数据,是十六进制数据。不是常规的txt文本文件,后缀是'.D10',UltraEdit打开可以看到数据。  原本以为很轻松就可以解决,但是这个问题却苦恼了我一天。了各种方式...
  • 有时候抓包软件进行抓包之后,想要制作程序进行发包,但是无法简单地将抓到的包转化到程序可以发送的包的格式(数据文件)。就会困在这一环节。我思考了一下,认为可以将复制到的抓包软件中包信息内的的数据(文本...
  • 16进制文件查看 txt文件阅读 long型数据查看 MFC文件打开对话框实现
  • 工作需要,需要读取十六进制数据,并转化成short类型的数据,实际上在定点复数运算中经常会有这样的数据,但是matlab在数据转化中,没有c灵活,还是费了一些周折。试过直接强制转化int16的数据,发现matlab直接就...
  • 技巧-notepad++如何以十六进制查看文本
  • 十六进制CString型存入tet文件里没有换行,而已字节型存入txt文件却有换行。 我最后是要将data.txt里的数据转换成JPEG图片显示出来的。 以下是实现将缓冲区数据存入TXT文件的代码: void CCommWizardDlg::...
  • 利用它调用外部十六进制文件显示命令xxd就可以顺利的编辑二进制文件了。 其中,%在vimComandLine时代表当前文件的路径,xxd是以十六进制显示一个文件,xxd -r&gt;是将十六进制还原为二进制。下面举一个例子...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,707
精华内容 8,282
关键字:

十六进制数据文件用txt显示