编译工具:TC3 VC6

语法:

txt2bin 文本文件名 二进制文件名 [/killline|n]

/killline 去除回车换行

n 以每隔n对16进制字符添加一个回车换行

例子:

txt2bin file.txt file.bin

txt2bin file.txt file.bin /killline

txt2bin file.txt file.bin 10

bin2txt 二进制文件名 文本文件名 [/killline|n] [/lower]

/killline 去除回车换行

n 以每隔n个字节添加一个回车换行

/lower 以小写方式

例子:

bin2txt file.bin file.txt

bin2txt file.bin file.txt /killline

bin2txt file.bin file.txt 10

bin2txt file.bin file.txt 10 /lower

/***************** txt2bin.c 16进制字符文件转为二进制文件 ******************/

#include #include #include #include

void help()

{

printf("txt2bin 1.0 HexTextToBin convertor by

grub2linux\nSyntax :\n txt2bin textFile binFile [/killline|n]\n

textFile : text file name.\n binFile : binary file name.\n /killline :

do not conserve RETURN & LINEFEEDs in textFile.\n n : do

not conserve RETURN & LINEFEEDs in textFile.\n add a

RETURN & LINEFEED every n*2 characters.\n");

}

void main(int argc, char *argv[])

{

FILE *txt,*bin;

unsigned short dig;

unsigned char w[3];

unsigned long i=0;

unsigned long j=0;

unsigned char buf;

char *stopStr="\0";

unsigned long filesize;

int doLine=0;

w[2]=0;

switch(argc)

{

case 4 :

if(strcmp(strupr(argv[3]),"/KILLLINE")==0) doLine=-1;

else doLine=atoi(argv[3]);

case 3 :

if((txt=fopen(argv[1],"rb"))==NULL)

{

printf("File error : %s\n",argv[1]);

return;

}

if((bin=fopen(argv[2],"wb"))==NULL)

{

printf("File error : %s\n",argv[2]);

return;

}

break;

default :

help();

return;

}

filesize=filelength(fileno(txt));

while(i{

fread(&dig,2,1,txt);

i+=2;

// printf("%04x\n",dig);

if(dig==0x0A0D)

{

if(doLine==0)

fwrite("\x0D\x0A",2,1,bin);

}

else

{

memcpy(w,&dig,2);

buf=(unsigned char)strtol(w,&stopStr,16);

fwrite(&buf,1,1,bin);

j++;

if(doLine>0 && j%doLine==0) fwrite("\x0D\x0A",2,1,bin);

}

}

fclose(txt);

fclose(bin);

}

/***************** bin2txt.c 二进制文件转为16进制字符文件 *******************/

#include #include #include #include #include

void help()

{

printf("bin2txt 1.0 BinToHexText convertor by

grub2linux\nSyntax :\n bin2txt binFile textFile [/killline|n]

[/lower]\n binFile : binary file name.\n textFile : text file name.\n

/killline : do not conserve RETURN & LINEFEEDs in binFile.\n

n : do not conserve RETURN & LINEFEEDs in binFile.\n

add a RETURN & LINEFEED every n bytes.\n /lower : in lower

case.\n");

}

void main(int argc, char *argv[])

{

FILE *txt,*bin;

unsigned char dig;

unsigned char dig0A;

char w[3];

unsigned long i=0;

unsigned long j=0;

unsigned long filesize;

int doLine=0;

int letterCase=0;

w[2]=0;

switch(argc)

{

case 5 :

if(strcmp(strupr(argv[4]),"/LOWER")==0) letterCase=1;

else

{

help();

return;

}

case 4 :

if(strcmp(strupr(argv[3]),"/KILLLINE")==0) doLine=-1;

else if(strcmp(strupr(argv[3]),"/LOWER")==0) letterCase=1;

else doLine=atoi(argv[3]);

case 3 :

if((bin=fopen(argv[1],"rb"))==NULL)

{

printf("File error : %s\n",argv[1]);

return;

}

if((txt=fopen(argv[2],"wb"))==NULL)

{

printf("File error : %s\n",argv[2]);

return;

}

break;

default :

help();

return;

}

filesize=filelength(fileno(bin));

while(i{

fread(&dig,1,1,bin);

i++;

if(dig==0x0D)

{

fread(&dig0A,1,1,bin);

i++;

if(dig0A==0x0A)

{

if(doLine==0)

fwrite("\x0D\x0A",2,1,txt);

}

else

{

if(letterCase==0)

sprintf(w,"%02X",dig);

else sprintf(w,"%02x",dig);

fwrite(w,2,1,txt);

j++;

if(doLine>0 && j%doLine==0) fwrite("\x0D\x0A",2,1,txt);

if(letterCase==0)

sprintf(w,"%02X",dig0A);

else sprintf(w,"%02x",dig0A);

fwrite(w,2,1,txt);

j++;

if(doLine>0 && j%doLine==0) fwrite("\x0D\x0A",2,1,txt);

// fseek(bin,-1L,1);

}

}

else

{

if(letterCase==0)

sprintf(w,"%02X",dig);

else sprintf(w,"%02x",dig);

fwrite(w,2,1,txt);

j++;

if(doLine>0 && j%doLine==0) fwrite("\x0D\x0A",2,1,txt);

// itoa((unsigned char)dig,w,16);

/*

itoa((unsigned char)(dig>>8),w,16);

strcpy(w,strupr(w));

fwrite(w,2,1,txt);

*/

}

}

fclose(txt);

fclose(bin);

}

linux二进制数据16进制数据转换,[轉]16进制字符文本/二进制文件迷你互转器相关推荐

  1. 用Matlab把 .txt文件中的16进制数据转换成2进制数据

    问题描述 使用Matlab将.txt文本文件里面存放的16进制数据转换成2进制数据,放入一个新的.txt文件中.直接附代码解释,第一次发文章,仅为了练习使用和记录. clear; clc; fid = ...

  2. python二进制解码_Python3 二进制数据base64编解码

    最近在搞阿里的物联网,其中使用到二进制数据透传,后台使用python,所以需要研究一下,二进制数据的传输问题. Python版本:3.6 设备端发送二进制数据: 7F 00 41 41 16 03 1 ...

  3. 微型计算机可以处理的二进制长度,可以处理的二进制数据长度是多少位

    微型计算机中CPU进行算术运算和逻辑运算时,可以处理的二进制数据长度是32位.64位. CPU一次能并行处理的二进制位数为字长,字长总是8的整数倍,常用的字长为8位(早期).16位(早期).32位和6 ...

  4. 二进制数据与16进制字符串相互转化方法

    二进制数据转化为16进制字符串(中间加的':'还有':'是为了查看下标,也可以自行去掉): 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 public st ...

  5. 将16进制字符串转化成内存二进制数据

    在使用Ini文件的时候,发现不能向Ini文件中写入流数据.于是想了一种方法来写入流数据,其中用到了内存数据转16进制,和16进制转成 内存二进制数据,前面的内存数据转16进制的已经写过,可以看看我以前 ...

  6. Linux shell 不同进制数据转换(二进制,八进制,十六进制,base64)

    原文: http://www.cnblogs.com/chengmo/archive/2010/10/14/1851570.html shell可以在不调用第3方命令,表示不同进制数据.这里总结以下表 ...

  7. 小技巧(1):Linux 下查看进程依赖,不同的16进制编辑器,与关掉Windows驱动签名认证

    最近又学到了一些零零碎碎的 Linux.Windows 命令,和一些可能今后会用得着的小技巧,怕自己忘记,所以把它们写在博客里面提醒一下自己,免得到时候再花费大量时间去百度.Google 找文章. L ...

  8. 有符号二进制乘法及MATLAB有符号数16进制到2进制的转换问题

    目录 有符号数乘法 MATLAB有符号16进制转2进制 有符号数乘法 在服务器中搭建乘法器验证波形时,多比特二进制数手算比较麻烦,所以导入matlab计算正确的输出结果. 此时要注意乘法器的特性,举个 ...

  9. 16进制转8进制 两种方法先转二进制在转8进制或先转10进制在转8进制

    问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行,每行一个由09.大写字母AF组成的字符串,表示要转换的 ...

最新文章

  1. class path resource [beans.xml] cannot be opened because it does not exist
  2. php_yaf 安装
  3. 用C++写一个简单的服务器和客户端
  4. WIN7 下安装 SQL Server 2000 兼容性问题
  5. 典型的Linux系统启动需要完成的服务
  6. java webapps路径_java 获取服务器端的webapps路径 | 学步园
  7. Qt之QAbstractItemView视图项拖拽(二)
  8. C++ 易混淆的概念-sizeof和strlen、char* 和char[]、*p++和(*p)++
  9. asp.net Forums2.0修改密码后无法登陆问题——都是Cache惹的祸
  10. CentOS 上MySQL报错Can't connect to local Mysql server through socket '/tmp/mysql.scok' (111)
  11. dlna 斐讯r1怎么用_斐讯R1智能(蓝牙)音箱固件升级教程
  12. 高等数学张宇18讲 第十四讲 数学一、数学二专题内容
  13. 物联网终端安全系列(之三) -- 物联网终端安全解决方案概述
  14. C1能力认证训练题解析 _ 第一部分 _ 计算机通识
  15. 电脑num lock键如何默认锁定
  16. 计算机键盘音乐 卡农,巴赫键盘音乐
  17. 假期无聊,我用傅里叶变换做了一个频率计,吉他定调口哨定音,样样好使!
  18. 磁盘列阵技术介绍及其部署
  19. 继续魔改TCP BBR
  20. 怎样更改计算机管理员用户名,Administrator怎么修改账户用户名教程

热门文章

  1. linux 内核定时器精度_高精度时钟工作机制简介
  2. integer 最大值_JAVA源码之Integer
  3. Oracle案例:一次非常艰难的drop多个PDB的恢复
  4. 明晚直播预告丨Oracle 19c X86下移经验分享
  5. 从Oracle数据库故障到AIX内存管理
  6. 20个MySQL运维案例,请查收!
  7. 备份有困难?Oracle DBA详述RMAN备份
  8. 实战课堂:为什么更换存储之后一切正常但RAC集群启动不了?
  9. CVE-2022-22965 漏洞分析,安全问题早发现
  10. 华为云基于云原生媒体网络,又出重磅新品