精华内容
下载资源
问答
  • linux 读取取串口信息并16进制打印输出
  • 这要是串口读取到的是16进制的数据,比如1D 4C 34 1F等 乱码是因为linux下的串口程序,只能显示字符,就是 0x31,0x32这种16进制它会显示成1和2这样的,你明白吗,你用一个支持HEX显示的串口工具就不是这样显示的了...
  • linux读取文件并输出其 16 进制
  • perl读取进制格式的bin文件

    千次阅读 2017-01-16 17:42:15
    16进制数据的字节翻转处理工程中,板级系统通过IDE工具,dump出的数据格式是二进制的bin文件。 在linux下,直接cat命令,是乱码。 此时,如果有需求对该文件下的数据进行脚本处理;比如perl。可以参考下述方法。...

    工程中,板级系统通过IDE工具,dump出的数据格式是二进制的bin文件。
    在linux下,直接cat命令,是乱码。
    此时,如果有需求对该文件下的数据进行脚本处理;比如perl。可以参考下述方法。

    perl下读取二进制格式的bin文件步骤:

    1. open FILEHAND,"XXX.bin"
      就是perl的读取文件命令
    2. binmode(FILEHAND)
      二进制模式
    3. read(FILEHAND,my $buf,2048)
      read命令一定要在binmode命令之后。
      $buf是存储2048个bytes数据的变量。此时直接print $buf,仍然是乱码格式。
      2048bytes,一般由bin文件的大小决定(例如当前应用,推荐与IDE dump的数据大小是一致的;)。
    4. my $hex=unpack("H*",$buf)
      这一行,主要是把bin文件里的内容,转成16进制数据。
      H*的意义,H是16进制解包,*是对所有字符进行16进制解包。详情参考下述文档。
      此时print $buf就是可查看的了。

    16进制数据的字节翻转处理

    因为硬件相关的dump数据显示,一般都是字节翻转的。
    所以,可以使用perl的正则表达式,把1个字即8个字节,按照字节翻转的原理,推断出期望的数据显示格式。
    perl下的命令:

    s/([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})/$4$3$2$1\n/g;

    参考文档:
    Perl的Open函数 (包括binmode)- 三句对白 - 博客园
    http://www.cnblogs.com/charlexu/archive/2013/01/30/2882911.html
    Perl函数pack/unpack解释 - eros的linux平台技术资料库 - 博客频道 - CSDN.NET
    http://blog.csdn.net/eroswang/article/details/2032564

    展开全文
  • (1)说明//把输入文件名为a.txt,(可以新建一个空文件,命名为b.txt)输出文件为b.txt//在linux下把a.txt ,b.txt ,test三个文件放在一起,在linux环境下运行test即可。(2)Makefile编写如下:test:test.ogcc -o test ...

    (1)说明

    //把输入文件名为a.txt,(可以新建一个空文件,命名为b.txt)输出文件为b.txt

    //在linux下把a.txt ,b.txt ,test三个文件放在一起,在linux环境下运行test即可。

    (2)Makefile编写如下:

    test:test.o

    gcc -o test test.o

    test.o:

    gcc -c test.c

    clean:

    rm test.o

    (3)test.c相关的源码如下:

    #include

    #include

    int main()

    {

    FILE *pf = fopen("a.txt", "r");

    if(pf == NULL) {

    printf("open a.txt file failed!\n");

    exit(0);

    }

    FILE *pf2 = fopen("b.txt", "w");

    if(pf2 == NULL) {

    printf("open b.txt file failed!\n");

    fclose(pf);

    exit(0);

    }

    unsigned char ch;

    while(!feof(pf)) {

    ch = fgetc(pf);

    if(ch != NULL)

    fprintf(pf2,"0x%02x,",ch);

    }

    fclose(pf2);

    fclose(pf);

    return 0;

    }

    展开全文
  • [chengmo@centos5 ~]$ ((num=0123));[chengmo@centos5 ~]$ echo $num;83[chengmo@centos5 ~]$ ((num=8#123));[chengmo@centos5 ~]$ echo $num;83((表达式)),(())里面可以是任意...十六进制转十进制:[chengmo@cen...

    [chengmo@centos5 ~]$ ((num=0123));

    [chengmo@centos5 ~]$ echo $num;

    83

    [chengmo@centos5 ~]$ ((num=8#123));

    [chengmo@centos5 ~]$ echo $num;

    83

    ((表达式)),(())里面可以是任意数据表达式。如果前面加入:”$”可以读取计算结果。

    十六进制转十进制:

    [chengmo@centos5 ~]$ ((num=0xff));

    [chengmo@centos5 ~]$ echo $num;

    255

    [chengmo@centos5 ~]$ ((num=16#ff));

    [chengmo@centos5 ~]$ echo $num;

    255

    base-32转十进制:

    [chengmo@centos5 ~]$ ((num=32#ffff));

    [chengmo@centos5 ~]$ echo $num;

    507375

    base64转十进制:

    [chengmo@centos5 ~]$ ((num=64#abc_));

    [chengmo@centos5 ~]$ echo $num;

    2667327

    二进制转十进制

    [chengmo@centos5 ~]$ ((num=2#11111111));

    [chengmo@centos5 ~]$ echo $num;

    255

    十进制转为其它进制

    十进制转八进制

    这里使用到:bc外部命令完成。bc命令格式转换为:echo "obase=进制;值"|bc

    [chengmo@centos5 ~]$ echo "obase=8;01234567"|bc

    4553207

    二进制,十六进制,base64转换为 十进制也相同方法。

    [chengmo@centos5 ~]$ echo "obase=64;123456"|bc

    30 09 00

    shell,内置各种进制表示方法非常简单。记得base#number 即可。这里记得赋值时候用(())符号。不能直接用=号了。=号没有值类型。默认将后面变成字符串了。如:

    [chengmo@centos5 ~]$ num=0123;

    [chengmo@centos5 ~]$ echo $num;

    0123

    0开头已经失去了意义了。

    可以通过定义符:let达到(()) 运算效果。

    [chengmo@centos5 ~]$ let num=0123;

    [chengmo@centos5 ~]$ echo $num;

    83

    展开全文
  • 1、strings 可执行程序  读取可执行程序的文件中的字符   2、hexdump 可执行程序  将可执行程序导成16进制   3、readelf 可执行程序  可以查看文件非常多的信息  (ps
    1、strings  可执行程序                              
    读取可执行程序的文件中的字符
     
    2、hexdump   可执行程序                         
    将可执行程序导成16进制
     
    3、readelf      可执行程序                         
    可以查看文件非常多的信息
     (ps:elf格式的文件分为:
                     shared object            *.so文件
                     reloadable                 *.o文件
                     executable                 可执行程序)
     
    4、file 可执行程序                                            
    查看文件的属性
     
    5、objdump    -S   可执行程序                         
    将可执行程序返汇编
    展开全文
  • xxd [options] [infile [outfile]] -b | -bits :以bit 输出 -c cols | -cols cols:每行显示的列数 -g bytes | -groupsize bytes:显示时用...-l len | -len len:读取长度 -seek offset :seek到offset位置...
  • 众所周知,计算机上运行的数据流最后都会以二进制的方式流转,这对计算机来说确实没什么问题,但是对人类来说,这样的方式无疑太难理解,所以计算机通过转换,将二进制的0、1字符串转换成人们可以易于理解的字母和...
  • od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来。语法od [-abcdfhilovx][-A ][-j ][-N ][-s ][-t ][-w ][--help][--version][文件...]参数:-a 此参数的效果和同时指定"-ta"参数相同。-A 选择要以...
  • hexdump (默认16进制,可转其他进制) od (默认8进制,可转其他进制) 二、编辑: 1、biew 2、hexedit 3、vim Vim 来编辑二进制文件。Vim 本非为此而设计的,因而有若干局限。但你能读取一个文件,改动一个字符...
  • Linux wc命令用于计算字数。 利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。 语法 wc [-clw][--help][--version][文件....
  • 有时候我们要读取的不是文本文件,如执行文件的读取,这里可以使用od(octal dump)命令. 命令格式: od [-t TYPE] 文件 -t 后面可以接各种参数,如 a :使用默认的字符输出 ...x[size]:16进制 例子: 转...
  • 程序如下: 其中 文件abc 是事先建立的新文件,否则可能不成功 第二点: 如果没有write函数,那么读取到的文件abc的大小为零,要特别注意。... tcx 中的x表示 16 进制 可用 d改成10 进制 lse
  • 本文提供了设置串口通讯的接口,方便大家对程序的复用,感觉还是面向对象的语言更方便呀;...注意在读写命令中存在零的16进制的数据时的方式;通信成功,但恰遇到模块总返回操作失败的代码的问题。
  • fdisk /dev/sdap命令查看分区n命令创建一个新分区创建后为sda3使用l命令查看所有分区类型,linux LVM的16进制代码为8e使用t命令改变分区类型,写上8e(linux LVM)lvm 进入lvm命令行管理使用partprobe重新读取分区表,...
  • read函数读txt文本文件...linux里的回车只有一个0A,就能正确的...read函数读txt文本文件,回车符总是读不对,在ultraedit里面显示windows的回车16进制是0D 0A,可read函数只读出0A,读不出前面的0D(第一张图)。lin...
  • Linux下c语言实现myod

    2017-10-15 14:36:00
    首先根据od要输出16进制的功能,以及c语言中文件的打开读取等函数,编写了如下代码。 #include<stdio.h> #define N 1000 int main() { int count1=0,count2=0,number=0; FILE *fp1; char model[N],name[N]...
  • linux文件分类

    2020-04-08 21:46:51
    (1)纯文本文件(可以直接阅读)、二进制文件(机器阅读的文件)、数据文件(某些程序运行是会读取某些特定格式的文件) (2) eg:# ls -lh install.log 显示:-rw-r–r-- 1 root root 53K 03-16 08:54 install....
  • Intel 80486指令中的16进制数0x89E5表示将ESP寄存器的内容拷入EBP寄存器。 汇编器可以将人们可以理解的源文件汇编成机器代码。汇编语言需要显示的操作寄存器和数据,并且与特定的处理器相关。 Linux中只有很少一...
  • MBR:包括主引导记录,MBR分区表,16进制字段 读取并执行第一个启动设备内MBR的启动引导程序(grub2) kernel:加载内核 根据启动引导程序设置加载kernel,kernel会开始检测硬件与加载驱动程序,)linux系统需要一个...
  • CPU资源监控(-u,或-P ALL)例如,每10秒采样一次,连续采样3次,观察CPU 的使用情况,并将采样结果以二进制形式存入当前目录下的文件test中,需键入如下命令:sar -u -o test 10 3屏幕显示如下:17:06:16 CPU %user ...
  • 数据恢复中经常会遇到linux或是Unix,如果无法把存储链接到windows的话,就没有办法使用像winhex这样的16进制磁盘编辑软件,也就更谈不上分析存储结构! 在这种情况下可以使用ddddd、ddddd_rescue、od或是Vim来简单...
  • Unix/Linux系统编程 3

    2019-03-03 18:48:06
    文件类型、文件的访问权限和特殊属性被编码储存在一个16位二进制树中,可以通过掩码来技术来读取这些信息 命令 ls passwd touch 相关的函数以及系统调用 opendir() readdir() closedi() stat() getpwuid() ...
  • 语音识别模块不好发送16进制格式的指针!!!! 一丶通过read串口读取指令(ascll形式) 二丶将读取到的指令转化为继电器驱动规定的输入指令格式 三丶将转化后的指令write到内核驱动 语音模块控制程序(删的只剩框架...
  • Linux内存(2)

    2018-04-20 17:43:49
    主讲逻辑地址与物理地址转换一、分页机制为了提高内存读取效率,每一页的大小都是2的n次幂,一个程序最多有64页,(16位处理器一页大小为1K,32位处理器一页大小为4K)以1K为例讲解:假如相对地址为1502,二进制为...
  • -XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出,更详细。 -v:当分析和打印的时候,产生详细的输出。 -vv:产生比-v更详细的输出。 -vvv:产生比-vv更详细的输出。 其他功能性选项: -D:列出可用于抓...
  • 关於 Process 处理的指令...............................................................................................16 六. 关於字串处理的指令...........................................................
  • 目的其实很简单,把文件中的数据读到一个数组里,数据是16进制数码,像这样下面的数据这样,其实这看上去有点像是个笔试题   0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xbf,0x0, 0x0, ...
  • Linux网络编程 宋敬彬 孙海滨

    热门讨论 2011-12-09 16:49:20
    8.2 字符串IP地址和二进制IP地址的转换 217 8.2.1 inet_xxx()函数 217 8.2.2 inet_pton()和inet_ntop()函数 219 8.2.3 使用8.2.1节地址转换函数的例子 220 8.2.4 使用函数inet_pton()和函数inet_ntop()的...

空空如也

空空如也

1 2 3 4 5 6
收藏数 111
精华内容 44
关键字:

linux读取16进制

linux 订阅