// 8位十六进制转十进制有符号数
// 因为8位有符号数范围为-128~127,而8位十六进制数范围为0~255,所以如果转换后十进制数大于127,则说明该数为负数,负数是以补码存储的,所以负数原码为N=-[127-(x_dec-128-1)]=x_dec-256
x = 'a8';
x_dec = hex2dec(x);
if x_dec > 127
x_dec = x_dec - 256;
end
// 十进制转十六机制
// 因为8位十六进制数范围为0~255,所以如果十进制数小于0,用正数表示为P=128+(127-(abs(x_dec)-1))=-abs(x_dec)+256
x_dec = -88
if x_dec < 0
x_dec= x_dec+256;
end
x_hex = dec2hex(x_dec);
switch(length(x_hec))
case 1
result = ['0x0',x_hex];
case 2
result = ['0x', x_hex];
break;
end
十六进制与十进制之间的相互转换
于 2022-05-19 23:07:56 首次发布
本文详细介绍了十六进制与十进制之间的转换方法,包括从十进制到十六进制的除法取余法,以及从十六进制到十进制的按权展开求和法。通过实例解析,帮助读者掌握这两种基本的数字系统转换技巧。
摘要由CSDN通过智能技术生成