Matlab有符号十六进制数据转换为有符号十进制数据并存储到txt文件

代码功能实现将有符号的十六进制数据转换为有符号的十进制数据并存储到txt文件

clear all
clc
%% 读入十六进制数据
fid = fopen('C:\Users\Administrator\Desktop\test\data_hex.txt', 'r+');
if fid == -1
    disp('fopen failed');
else
    ReadData = textscan(fid,'%s');
end
fclose(fid);
%% 从元胞数组中读出16进制数,并转换为无符号数据
for i=1:length(ReadData{1})
    data(i) = hex2dec(ReadData{1}{i});
end
%% 根据数据位宽,将无符号的数据转换为有符号数据(无符号数据不需要此操作)
for i=1:length(data)
    if(data(i) > 2^8/2-1)%8位宽的数据有符号数据取值范围[-128,127],(2^8/2-1=127),根据实际位宽修改
        data_dec(i) = data(i) - 2^8;
    else
        data_dec(i) = data(i);
    end
end
%% 将有符号的十进制数写入txt文件
fid = fopen('C:\Users\Administrator\Desktop\test\data_dec.txt', 'w+');
if fid == -1
    disp('fopen failed');
else
    for i=1:length(data_dec)
         fprintf(fid,'%d\n',data_dec(i));
    end   
end
fclose(fid);

 

  • 15
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MATLAB中可以使用0x或0X前缀来表示十六进制,例如0xEFA6E3D5。这样的十六进制字面值将被存储为整。同样地,可以使用0b或0B前缀来表示二进制,例如0b10011001101。这种表示法在某些情况下更加方便,比如表示硬件寄存器的位。在MATLAB中,可以将十六进制值表示为文本,也可以将二进制值转换十六进制表示。此外,还可以使用二进制值进行按位运算。如果想要将十六进制转换为有符号十进制,在MATLAB中需要在值后面加上s8、s16、s32或s64,具体根据情况而定。\[2\]\[3\] #### 引用[.reference_title] - *1* [MATLAB中的16进制](https://blog.csdn.net/qq_46147995/article/details/119112358)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [MATLAB进制转换](https://blog.csdn.net/Jinzhi_Guan/article/details/127260000)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Matlab十六进制和二进制值](https://blog.csdn.net/it_xiangqiang/article/details/127891632)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值