关于ITB 将整型(16位)转换为BCD码指令的疑问

描述 

ITB (16位整数从二进制到十进制的转换)将ACCU 1-L的内容解释为16位整数,并将其转换为三位二进制编码的十进制数(BCD码)。结果存储在累加器1的低字中。位0到位11包含BCD数字的值。位12至位15用来表示
BCD数字的符号状态(0000 = 正,1111= 负)。累加器1的高字和累加器2保持不变。

BCD数字的范围为"-999"至"+999"。如果超出允许范围,则状态位OV和OS被置位为1。

执行该指令时不涉及RLO,也不会影响RLO。
______________________________________________________
以上文字及图片皆为ITB指令的帮助,我相问的是图片中的mw10用二进制表示为什么是1111-1110-0110-0011,难道整数-413不应该是1000-0001-1001-1101吗?

图片说明:

关于ITB    将整型(16位)转换为BCD码指令的疑问   

最佳答案

整型数据负数如何表示:
413:     0000 0001 1001 1101 这个数值是-413的绝对值,然后将这个二进制数取反码:
 反码:1111 1110 0110 0010  ,这个反码再加1就得到了-413的二进制表达格式了:
 -413 :1111 1110 0110 0011
负数就是绝对值数的二进制取反码,然后在加1;

提问者对于答案的评价:
谢谢!我犯了这个基本的错误

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc169591.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2017年6月11日 下午3:51
下一篇 2017年6月11日 下午3:52

相关推荐