07-BCD运算

加法

  • 进位:当值在[10,19][10,19]范围时,需要对结果进行调整(进1,加6)

  • 实现:第4位为1,第2、3位至少有1位为1

BCD加法器

减法

  • N1N2=N1+((10n1)N2+1)10nN_1-N_2=N_1+\left((10^n-1)-N_2+1\right)-10^n

  • ((10n1)N2+1)\left((10^n-1)-N_2+1\right):用99...9999...99取反,加1得到负值

    • 加6后按位反转

  • 结果调整

    • 若有进位舍弃进位

    • 若无进位需手工减去10n-10^n:取反,加一,将结果设为负

最后更新于