⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hex.cpp

📁 该算法可以成功的实现二进制到十六进制的转换。可以做为编码的子程序使用
💻 CPP
字号:
#include <stdio.h>
#include <math.h>
#define  IFILE_NAME   "demo_V21_1.dat"  //输入的文件名
#define  OFILE_NAME   "hex_demo_V21_1.dat"//输出的文件名
//#define  FRAME  400    //一共有多少个帧


short temp[391],*p_temp=temp;

unsigned long int  GetNumFrames (FILE*  fp,	unsigned long int  blocksize)
{

   unsigned long int position;
   unsigned long int numFrames;

	position = ftell(fp);
	fseek(fp,0L,2);
	numFrames = ftell(fp) / blocksize;
	fseek(fp,position,0);
	return(numFrames);
}

void main()
{
   FILE *ifileP,*ofileP;
   int i,j;
 short   con_binary[1566];
 short d[4];
 int num;

    //if ((ofileP=fopen(OFILE_NAME,"r")) == NULL)
    if((ifileP=fopen(IFILE_NAME,"rb"))==NULL)//以文本的形式打开
    {
        printf("cannot open this file!\n");
      
    }
    else printf("success to open the file!\n");
    //if ((ofileP=fopen(OFILE_NAME,"w")) == NULL)
    if ((ofileP=fopen(OFILE_NAME,"wb")) == NULL)//以二进制的文件打开
    {
        printf("Unable to open output file-%s\n",OFILE_NAME);
        
    }
    num=GetNumFrames(ifileP,2);
    fread(con_binary,sizeof(short),num,ifileP);
   
	for(i=0;i<int(num/4);i++)
	{
		for(j=0;j<4;j++)
		{
			d[j]=con_binary[j+i*4];
		}
		
		temp[i]=d[0]*8+d[1]*4+d[2]*2+d[3]*1;
		
	    if(temp[i]<10)
			{
				temp[i]=temp[i];
                printf("%d",temp[i]);
				//fprintf(ofileP,"%d",temp[i]);//写入文本文件
				fwrite(&temp[i],sizeof(short),1,ofileP);//写入二进制文件
				
			} 
            else
			{   
                 temp[i]=(char)(temp[i]+55);
                 printf("%c",temp[i]);
				  //fprintf(ofileP,"%c",temp[i]);//写入文本文件
				 fwrite(&temp[i],sizeof(short),1,ofileP);//写入二进制文件	
             }   
    
	}
   printf("\n");
			
         
  
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -