level 12
厉风
楼主
所谓减法模块,核心就是取相反数模块,即给定一个 变量A,通过该模块对这个变量进行操作后,获得A的原有取值的相反数值,并把新数值重新寄存给A
而如果我们需要计算B-A,那么实际上就是先对A调用取相反数的模块,之后直接计算B+A即可
相反数模块原理:
首先这个模块需要一个操作变量(例如A)和中间变量(例如B)
操作变量就是指:模块读取该变量的数值并进行转换,最后把转换结果重新存储给该变量 的那个变量
中间变量指:模块中间计算过程中,临时存储数据用的变量
相反数模块可以用来对于一个特定操作变量A转换其数值为相反数,如果你想要将C的数值转换为相反数,只需要:
把C的数值转存给A
调用相反数模块对A进行转换
将新的A值转存给C
现在来说说相反数模块的具体计算步骤:
第一步:将中间变量B清零,即设置B=0,这是为了避免上一次使用本模块遗留非零B值导致本次计算错误
第二步:[0级判断]A是否小于0?
否:跳转到[1级判断-甲]
是:跳转到[1级判断-乙]
第三步:[1级判断-甲]A是否大于30000?
否:跳转到[2级判断-甲]
是:跳转到结束
第四步:[1级判断-乙]A是否小于-30000?
否:跳转到[2级判断-乙]
是:跳转到结束
第五步:[2级判断-甲]A是否小于10000?
否:A-10000且B-10000跳转回[2级判断-甲]
是:跳转到[3级判断-甲]
第六步:[2级判断-乙]A是否大于-10000?
否:A+10000且B+10000跳转回[2级判断-乙]
是:跳转到[3级判断-乙]
第七步:[3级判断-甲]A是否小于1000?
否:A-1000且B-1000跳转回[3级判断-甲]
是:跳转到[4级判断-甲]
第八步:[3级判断-乙]A是否大于-1000?
否:A+1000且B+1000跳转回[3级判断-乙]
是:跳转到[4级判断-乙]
第九步:[4级判断-甲]A是否小于100?
否:A-100且B-100跳转回[4级判断-甲]
是:跳转到[5级判断-甲]
第十步:[4级判断-乙]A是否大于-100?
否:A+100且B+100跳转回[4级判断-乙]
是:跳转到[5级判断-乙]
第十一步:[5级判断-甲]A是否小于10?
否:A-10且B-10跳转回[5级判断-甲]
是:跳转到[6级判断-甲]
第十二步:[5级判断-乙]A是否大于-10?
否:A+10且B+10跳转回[5级判断-乙]
是:跳转到[6级判断-乙]
第十三步:[6级判断-甲]A是否小于1?
否:A-1且B-1跳转回[6级判断-甲]
是:把B值寄存给A,跳至结束
第十四步:[6级判断-乙]A是否大于-1?
否:A+1且B+1跳转回[6级判断-乙]
是:把B值寄存给A,跳至结束
第十五步:结束
2012年02月04日 18点02分
1
而如果我们需要计算B-A,那么实际上就是先对A调用取相反数的模块,之后直接计算B+A即可
相反数模块原理:
首先这个模块需要一个操作变量(例如A)和中间变量(例如B)
操作变量就是指:模块读取该变量的数值并进行转换,最后把转换结果重新存储给该变量 的那个变量
中间变量指:模块中间计算过程中,临时存储数据用的变量
相反数模块可以用来对于一个特定操作变量A转换其数值为相反数,如果你想要将C的数值转换为相反数,只需要:
把C的数值转存给A
调用相反数模块对A进行转换
将新的A值转存给C
现在来说说相反数模块的具体计算步骤:
第一步:将中间变量B清零,即设置B=0,这是为了避免上一次使用本模块遗留非零B值导致本次计算错误
第二步:[0级判断]A是否小于0?
否:跳转到[1级判断-甲]
是:跳转到[1级判断-乙]
第三步:[1级判断-甲]A是否大于30000?
否:跳转到[2级判断-甲]
是:跳转到结束
第四步:[1级判断-乙]A是否小于-30000?
否:跳转到[2级判断-乙]
是:跳转到结束
第五步:[2级判断-甲]A是否小于10000?
否:A-10000且B-10000跳转回[2级判断-甲]
是:跳转到[3级判断-甲]
第六步:[2级判断-乙]A是否大于-10000?
否:A+10000且B+10000跳转回[2级判断-乙]
是:跳转到[3级判断-乙]
第七步:[3级判断-甲]A是否小于1000?
否:A-1000且B-1000跳转回[3级判断-甲]
是:跳转到[4级判断-甲]
第八步:[3级判断-乙]A是否大于-1000?
否:A+1000且B+1000跳转回[3级判断-乙]
是:跳转到[4级判断-乙]
第九步:[4级判断-甲]A是否小于100?
否:A-100且B-100跳转回[4级判断-甲]
是:跳转到[5级判断-甲]
第十步:[4级判断-乙]A是否大于-100?
否:A+100且B+100跳转回[4级判断-乙]
是:跳转到[5级判断-乙]
第十一步:[5级判断-甲]A是否小于10?
否:A-10且B-10跳转回[5级判断-甲]
是:跳转到[6级判断-甲]
第十二步:[5级判断-乙]A是否大于-10?
否:A+10且B+10跳转回[5级判断-乙]
是:跳转到[6级判断-乙]
第十三步:[6级判断-甲]A是否小于1?
否:A-1且B-1跳转回[6级判断-甲]
是:把B值寄存给A,跳至结束
第十四步:[6级判断-乙]A是否大于-1?
否:A+1且B+1跳转回[6级判断-乙]
是:把B值寄存给A,跳至结束
第十五步:结束
