关于补码的思考

两个问题:

1. 二进制补码是CPU计算的符号数表示形式,但是用户输入的都是10进制,是在哪个节点给10进制转换成二进制补码的?

结论是编译器做转换,CPU不关系符号,可以通过 https://defuse.ca/online-x86-assembler.htm#disassembly 这个网站写个 mov ax,-1 这种汇编转成机器码之后可以看到-1已经转成了补码。

2. 补码是如何转换成用户能看到的十进制?

补码只是通过一种方式能自圆其说,但是补码到10进制应该没有什么数学原理,我理解应该就是个map转换,或者仅仅通过观察表象的数字规律来做转换。(PS: 对于有符号的最小值感觉就是个特殊逻辑,没有任何能转换成10进制的规律)

posted @ 2021-11-16 16:07  Birding  阅读(14)  评论(0编辑  收藏  举报