zoukankan      html  css  js  c++  java
  • 在MATLAB中实现十进制和十六进制数的转化方法

    转自:http://hsanyi.blog.163.com/blog/static/55022325201261524922278/

    在MATLAB中算出了一个十进制的数组(有几百个单元),如何把这些十进制的书转化为16进制呢?

    如果是正数直接使用dec2hex函数。如果是负数,将其转换为反码再用dec2hex。 

    转换规则:对N位二进制表示的有符号十进制数,其数值范围为-2^(N-1)~2^(N-1)-1,对正数n,对应十六进制数为dec2hex(n)对负数n,对应十六进制数为dec2hex(2^(N+1)+n)。

    例:a=[-1 10 17 -10 9],需转换为一个字节的十六进制表达。
    需将其中的负数转换为相应的反码,n = n + 256 
    使用 a(find(a<0))=a(find(a<0))+256 
    得到
    a =
       255    10    17   246     9
    再用
    dec2hex(a) 
    得到
    ans =
    FF
    0A
    11
    F6
    09

     

     

    %%%%%%16进制转10进制 转化方法一%%%%%%%%%%%%
    a=textread('c:\a.txt','%s')';%以字符形式打开文件 
    alpha=hex2dec(a)'; %16进制转化为10进制数,存入alpha矩阵 
    %%%%%%%16进制转10进制 转化方法二%%%%%%%%%%%
    [wenjian_ming,lujing_ming] = uigetfile('c:\a.txt','导入数据');
    fid=fopen(strcat(lujing_ming,wenjian_ming),'r');
    data=[];
    while ~feof(fid)
    m=fscanf(fid,'%3x',[1 inf]);
    data=[data;m];         %将读出的数据存入data矩阵中
    end
    alpha=data;
    %%%%%%%保存文件方法一%%%%%%%%%%%%%%
    dlmwrite('c:\b.txt',alpha,'delimiter', ' ') %将得出数据存入新的b.txt文档 
    %%%%%%%保存文件方法二%%%%%%%%%%%%%%
    fid=fopen('c:\d.txt','w');
    fprintf(fid,'%d ',alpha');
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    alpha2=alpha(1:2:length(alpha)-mod(length(alpha)+1,2)); %将奇数元素提取出来
    dlmwrite('c:\c.txt',alpha2,'delimiter', ' ') %将得出数据存入新的c.txt文档 
    %%%%%%%画图%%%%%%%%%%%%%%
    plot(1:length(alpha2),alpha2) %画图


  • 相关阅读:
    scrapy相关信息
    BeautifulSoup常见使用
    requests常用模块以及爬取github个人项目
    django rest framework 与前端跨域问题解决
    nginx配置正向代理与反向代理
    django+nginx+uwsgi+https
    linux基本命令
    python基本算法
    centos7配置ftp服务器
    nginx1.12配置
  • 原文地址:https://www.cnblogs.com/youngforever/p/3104696.html
Copyright © 2011-2022 走看看