源码 反码 补码的介绍
进制(先介绍一下进制)
-
十进制: 平时写代码都是10进制。 人类的习惯
-
二进制: 计算机的底层 是用二进制进行运算的
-
八进制和十六进制:计算机的研究者,研究底层的哪些人。研究计算机硬件的那些人。
他们天天和 二进制 10101010101010101000000000001010101010111111 去接触的
他们看这些数字的时候 肯定会眼花缭乱。 二进制和十进制又不好转换。
所以就出现了八进制和 十六进制, 这样看那些二进制数据的时候 就比较好看了。进制的转换(8424码)
https://blog.csdn.net/YaroDong/article/details/103704635?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522163474660616780264046991%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=163474660616780264046991&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-2-103704635.pc_search_ecpm_flag&utm_term=8421%E7%A0%81&spm=1018.2226.3001.4187
源码 反码 补码
背景
计算机中是怎么存储 整数的。 78 ---- 1001110
二进制: 计算机中 电子 电阻和电容。 1 0 最底层用二进制来表示的。
十进制的 10 -- 二进制 :1010
十进制的 -10 --- 负数怎么表示
计算机表示 负10 是绝对不会在二进制的前面加负号的, 因为计算机里面只有01
正号和符号:必须要结合着 数据类型的 最高位来去表示。
数据类型的里面 最高位 0不表示正号 1表示负号。
数据以后使用来计算的。
现在咱们来看 两个 正10相加 得到 正20吗?
0000 1010
0000 1010
--------------
0001 0100 ---- 正20
如果 一个正10 加上一个 负10 会得到0吗?
0000 1010
1000 1010
-------------
1001 0100 ----- 负20(最高位的1表示正负)
所以得到了结论:负数的表示 不能只用高位是1
0000 1010 --- +10 这个是正10的源码。
1111 0101 --- 反码
0111 0101
0111 0110
1111 1111
+ 1
----------------
10000 0000 --- 0
1111 0101
+ 1
---------------
1111 0110 -10 这才是计算机真实底层保存的那个 -10
1000 1010 -- 原码 ---原码就是 把-10 直接按照十转二进制翻译为2进制的数据然后高位变1(1表示符号)
1111 0101 -- 反码 ---反码就是因为中间推导的过程而得名 高位不变 其他位取反。
1111 0110 -- 补码 ---补码才是负数在计算机中真实存储的数据,然后人为无法直接通过转换二进制计算出来,所以需要用过原码反码的过程推导出来。
注意:正数的源反补都是一样的 都是 十进制直接转换二进制
比如正10的 原反补都是:0000 1010