计算机组成原理 (6)

  最后,倒着取余数,所以101的二进制表示是:1100101。二进制转为十进制使用的是按权展开法:\(1100101 = 1 \times 2^6 + 1 \times 2^5 + 0 \times 2^4 + 0 \times 2^3 + 1 \times 2^2 +0 \times 2^1 + 1 \times 2^0 = 101\)
  再举一个例子:十进制数237转为二进制,如下

重复除以2 得商 取余数
237/2   118   1  
118/2   59   0  
59/2   29   1  
29/2   14   1  
14/2   7   0  
7/2   3   1  
3/2   1   1  
1/2   0   1  

  最后倒着取数,所以237的二进制表示是:11101101。使用按权展开法把二进制转为十进制:\(11101101 = 1 \times 2^7 + 1 \times 2^6 + 1 \times 2^5 + 0 \times 2^4 + 1 \times 2^3 + 1 \times 2^2 +0 \times 2^1 + 1 \times 2^0 = 237\)
  二进制转为十进制:按权展开法的的计算公式如下:
\(N = d_{n-1}d_{n-2}...d_1d_0 = d_{n-1}r^{n-1} + d_{n-2}r^{n-2} + d_1r +d_0\)

2.小数十进制和二进制的互相转换
  如果这个十进制是小数,则使用重复相乘法。例如 \(\frac{25}{32}\)转为二进制,如下:

重复乘以2 得积 取整
\(\frac{25}{32} \times 2\)   \(\frac{25}{16} = 1+\frac{9}{16}\)   1  
\(\frac{9}{16} \times 2\)   \(\frac{9}{8} = 1+\frac{1}{8}\)   1  
\(\frac{1}{8} \times 2\)   \(\frac{1}{4} = 0+\frac{1}{4}\)   0  
\(\frac{1}{4} \times 2\)   \(\frac{1}{2} = 0+\frac{1}{2}\)   0  
\(\frac{1}{2} \times 2\)   \(1 = 1+0\)   1  

  最后顺着取整数:\(\frac{25}{32}\)的二进制表示为:0.11001。现在再使用按权展开法把二进制转为十进制数:
\(N = 0.11001 = 1 \times 2^{-1} + 1 \times 2^{-2} + 0 \times 2^{-3} + 0 \times 2^{-4} + 1 \times 2^{-5} = 0.78125 = \frac{25}{32}\)

有符号数和无符号数

  正的237使用二进制表示为:+237 = 011101101 ,负的237使用二进制表示为:-237 = 111101101,在计算机中,使用0表示正数,使用1表示负数。但计算机是怎么判断它是数字位还是符号位的呢?这就需要使用原码表示法了,在原码表示法中,使用0表示正数,使用1表示负数,规定符号位位于数值的第一位,表达简单明了,是我们最容易理解的表示法。0有两种表示法:00或10,在使用原码进行运算时,会非常复杂,特别是两个操作符号不同的时候,我们需要进行判断两个操作数得绝对值大小,使用绝对值大的数减去绝对值小的数,对于符号值,以绝对值大的为准。因此我们希望找不到不同符号操作数运算更加简单得方法,也就是可以使用正数来代替负数,使用加法操作来代替减法操作,从而消除减法。于是出现了二进制的补码表示法,补码的定义如下:

\[x = \begin{cases} x & 2^{n} > x \geq 0 \\ 2^{n+1} + x & 0 > x \geq -2^n \end{cases} \]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpdyxp.html