1. 什么是源码,反码,补码?
2. 计算机内部存储的是源码 还是 反码 还是 补码??
3. 这样一个二进制数:00010010 这是表示正数还是负数?他的几??
请给一个比较权威正确的答案,如果你也不确定,就不要回答了,谢谢!
计算机内部如何存储数据,关于源码、补码的问题!
在计算机内部,使用二进制代码,存储各种信息。
用二进制代码,表示数值,它们的关系,十分简单。
远远没有他们所说的“原码反码符号位。。。”那么复杂。
就说八位机,每个数值,都是用八位二进制来存储。
数值 0,存在计算机中,就是:0000 0000。
数值 +1,存在计算机中,就是:0000 0001。
数值 +2,存在计算机中,就是:0000 0010。
。。。依次递增。。。
数值 +127,这就是:0111 1111。
---------------------
负数,那就从 0 依次递减。
数值 0,存在计算机中,还是:0000 0000。
数值-1,就是用 0 减去 1,即:0000 0000-1。
用二进制相减,即可得:1111 1111。
出现借位,自然丢弃。
数值-2,就再减一次一,可得:1111 1110。
数值-3,以此类推。。。就是:1111 1101。
。。。依次递减。。。
数值-128,慢慢减吧。最终是:1000 0000。
综上所述,十进制数值,与八位的补码,列表如下:
至此,就把数值与补码的关系,说明完毕。
补码,就是由二进制,递增、递减,自然而然形成的。
在此期间,原码反码符号位什么的,都没有用。
所以,补码,与这些垃圾,一丁点关系,都没有。
补码,并非是“原码取反加一”而来的。
在八位的原码中,也没有-128,拿什么取反加一!
参考资料:数字逻辑电路