1. 确定16进制数num_hex的16进制位数,比如:(‘0xFF’->hex_num = 2)、(‘0xFFFFFF’->hex_num = 6);
2. 确定最高位为0还是1;
3. 最高位为0,该16进制数为整数,则num_dec = hex2dec(num_hex);
4.最高位为1,该16进制数为负数,则num_dec = hex2dec(num_hex) - 16^hex_num;
clear;
clc;
close all;
num_hex = 'FFFEC1';
hex_num = 6;
num_dex = hex2dec(num_hex);
if num_dex > 16^hex_num/2
num_dex = num_dex - 16^hex_num;
end
disp(num_dex);