計算機組成原理--數據表示


1.基本概念

  • 真值:+0101,-0100  
  • 機器數: [x]原=0101

機器數就是用 0表示正數,1表示負數。

2.幾種機器數

  • 原碼:原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其余位表示值. 比如如果是8位二進制:
[+1]原 = 0000 0001
[-1]原 = 1000 0001

第一位是符號位. 因為第一位是符號位, 所以8位二進制數的取值范圍就是:

[1111 1111 , 0111 1111]==>[-127 , 127]

 

  • 反碼:

    反碼的表示方法是:

    • 正數的反碼是其本身
    • 負數的反碼是在其原碼的基礎上, 符號位不變,其余各個位取反
      [+1] = [00000001]原 = [00000001]反
      [-1] = [10000001]原 = [11111110]反
  • 補碼:

    補碼的表示方法是:

    • 正數的補碼就是其本身
    • 負數的補碼是在其原碼的基礎上, 符號位不變, 其余各位取反, 最后+1. (即在反碼的基礎上+1)
      [+1] = [00000001]原 = [00000001]反 = [00000001]補
      [-1] = [10000001]原 = [11111110]反 = [11111111]補

 

 

 

引用:https://www.cnblogs.com/wqbin/p/11142873.html

 

移碼:

移碼最簡單了,不管正負數,只要將其補碼的符號位取反即可。

例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]補=11010101,[X]移=01010101

 

3.定點數和浮點數

定點數:小數點固定 x.xxxxxx,表示范圍受限,忘掉它吧

 

浮點數:數的范圍和精度分別表示。

 

一般格式 :EEEE......EMMM.......M,E部分是階碼(數的范圍i),M部分是尾數(數的精度)。

缺點:階碼和尾數位數不固定,太靈活了

E:階碼位數,決定數據的范圍

M:尾數位數決定數的精度

IEEE754格式:跟我背下來----

32位的是(單精度):1位符號位S + 8位偏指數E + 23位有效尾數M,偏移值為127。

64位的是(雙精度):1位符號位S + 11位偏指數E + 52位有效尾數M,偏移值為1023。

真值就是(32位為例) N = (-1)^S * 2^(E-127) * 1.M

 

例題:

 

 

 

 

 上面是32位精度

 S:1表示負數 ,0表示正數

 

 

 

 

 

 

 

 

 

浮點數的特殊情況:

E=0,M=0:機器零

E=255,M=0:無窮大,對應於x/0

E=255,M!=0:非數值NaN,對應0/0

ps:附上一份IEEE754文檔:link

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM