转换为十进制
转换为十进制的方法就是使用((每一位数乘以进制的权重次幂)的和),公式即:
\(\text{十进制值} = d_n \cdot b^n + d_{n-1} \cdot b^{n-1} + \dots + d_1 \cdot b^1 + d_0 \cdot b^0
\)
公式看起来有点抽象,那就先举例8进制135:
\(5×8^0+3×8^1+1×8^2=93
\)
那么8进制的135就是93
那如果是16进制135呢?
\(5×16^0+3×16^1+1×16^2=309
\)
那么16进制的135就是309
十进制转换为其他进制
十进制转换为其他进制的方法是不断用进制除以原数直到商为0,倒叙排列余数
比如10进制的135转换为8进制,那么就是:
135÷8=16 余7 16÷8=2 余0 2÷8=0 余2
那么10进制的135转换为8进制就是207
如果10进制的135转换为16进制,那么就是:
135÷16=8 余7
8÷16=0 余8
那么10进制的135转换为16进制就是87
程序员计算器
目前微软自带的新老计算器都内置了程序员模式,可以非常方便地快速计算.至于苹果十年磨一剑的计算器似乎目前还暂时没有支持.
Sign Magnitude Representation原码
第一位用0表示正数,1表示负数,后面的是数的绝对值大小.
缺点:同时包含+0和-0两种,浪费了空间
Two’s Complement Representation补码
正数表示与原码相同,但是负数通过对其绝对值的二进制形式进行“取反加一”得到.
也就是说-6的补码形式为00000110,取反11111001,加一11111010.
在将二进制补码转换为十进制时,最大的幂项的 2 必须取负值,也就是说:11111010转换为十进制
(我这里不想列式子了,偷个懒,1111010转换为十进制为122,然后再减去1×2^7也就是减去128就是-6了)