1.国内概念体系介绍,相关内容出处:https://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html
2.日本概念体系介绍,相关内容出处:https://mathwords.net/ninohosuu
简单概括:
1.国内:原码即原码,首位作符号位,0为正,1为负数。正数的原码,反码,补码均相同,不再赘述。
关于负数,反码则将符号位保留,其他位取反即可,补码则为反码+1。
补码再次取反+1,可以得到原码。(符号位始终不变)
2.日本只存在【1的补数】【2的补数】两个概念。
【1的补数】涉及的比特列不讨论正负,即默认正数,
对一组正常的序列全部取反,得到这个数之于1的补数,简称【1的补数】。
同补码过程相同,【1的补数】+1,即得到【2的补数】。
表面上看上去没什么区别,实际上日方的思考方式更倾向于为机器着想,【2的补数】本质便是补码,拥有所有补码的特征和细节,拥有符号位,能够表现正负,被机器识别。(或者说所有负数均依赖于【2的补数】来表示,正常的序列没有这样的功能。)
从根本上来讲是有没有符号位的区别,但不同阶段并没有沿用同一套制度,简而言之就是一会有一会没。
对于机器来说,负数的减法操作转化成了加法操作,对于人来说,可以不用想那么多有的没的。
这里只是稍微介绍下二者的细微差别,实际上都同根同源。