16进制减法

感觉原码、反码、补码什么的太麻烦了,实际上的加减法就是把10进制改成了16进制,其他的没有任何变化。
随便一个式子:

   3D25H
 - 4034H

遇到16就借位,从低位开始减。
5H-4H=1H,不借位;
2H-3H则需要借位,12H-03H=0FH,所以这一位是F;
DH-0H不需要借位,但由于更低位借位了,所以要-1,这一位是C;
3H-4H需要向更高位借位,这一位是F。
得到的结果是有符号数FCF4H。
我们验证它的结果是否正确。

3D25H=3*pow(16,3)+13*pow(16,2)+2*16+5=15653;
4034H=4*pow(16,3)+0+3*16+4
原式=-1*pow(16,3)+13*256-16+1=-783
FCF4H=1111 1100 1111 0100b,
这个等式可以转换为
0CF4H+(1111b)*16^3
也就是说,按照十进制的运算,被加数是不用动的,
而加数(1111b)*16^3转换为10进制即-1*16^3。
原式等于=-1*16^3+0CF4H=-1*pow(16,3)+13*256-16+1=-783
证明运算结果正确。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值