计算机如何区别原码与补码
-------------------
这也不用区分哪!
在计算机系统中,数值,一律采用补码表示和存储。
计算机,既不使用原码和反码,也不保存原码反码。
计算机中,只有补码,没有原码!
哪里还用什么区分!
-------------------
计算机,使用二进制数。
如:1001 0101。
它可能是“无符号数”:149。
也可能是“带符号数”:-107。
它到底是什么数值?
这就要看,你是怎么编写程序了!
计算机,只是保存二进制数。
计算机才不管它是什么码(英文日文俄文)、什么数(正数负数浮点数)、什么控制符号(开门关门发射卫星)、什么状态(温度气压酸甜咸淡)。。。
它到底是什么信息?
这就要看,你是怎么编写程序了!
原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码。负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码。正数的补码与原码相同,负数的补码为 其原码除符号位外所有位取反(得到反码了),然后最低位加1.正数的反码和补码都与原码相同。
负数的反码为对该数的原码除符号位外各位取反。
负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1
计算机没办法区分任何文件形式的存在,本质上就是超多的高低电路在做布尔运算
不管是原码,反码,补码都是以二进制的形式转换而来,为什么用二进制,就是为了契合计算机的高低电路,所有的计算数都是以补码转成高低电路的,在做电路计算
开发人员(10进制)--->编译器(2进制)---->操作系统(补码)---->计算机硬件(高低电路)
这么描述比较通俗,但不严谨,真的感兴趣可以从操作系统和数据结构入手。
正负整数都用补码进行存储,0开头就是正整数 补码=原数的二进制,1开头就是负整数,再补码一次就是原码的二进制
个人的理解重心主要要搞清为什么有原码/反码/补码
为什么会出现这三种编码制式?
你肯定是这个没搞清,这个搞清楚了,不存在什么区不区分的问题