1. 程式人生 > >數據概述與進制轉換

數據概述與進制轉換

表現 素材 等於 bsp 十六進制 spa 一個 其余 邏輯運算

什麽是數據

數據是事實或觀察的結果,是對客觀事物的邏輯歸納,是用於表示客觀事物的未經加工的原始素材。

數據是信息的表現形式和載體,信息是數據的內涵。數據本身沒有意義,數據只有對實體行為產生影響時才成為信息。

計算機中的數據按照表現形式可分為兩類:

  • 數字數據:由阿拉伯數字符號構成的數據。如各種統計或量測數據
  • 模擬數據:在某個區間內產生的連續值,如視頻、圖像、聲音等

在計算機系統中,數據以二進制信息單元0、1的形式表示。

進制及進制轉換

1.計算機采用二進制的主要原因

  • 技術實現簡單
  • 簡化運算規則
  • 適合邏輯運算
  • 易於進行轉換
  • 二進制表示數據具有抗幹擾能力強,可靠性高等優點

2.二進制、十進制轉換

(1)二進制轉十進制:按權位求和

  • 二進制數110001-->1*26-1+1*25-1+0*24-1+0*23-1+0*22-1+1*21-1= 十進制數49

(2)十進制轉二進制:除二取余法

技術分享圖片

3.八進制、二進制、十進制轉換

(1)八進制轉十進制:按權位求和

  • 八進制數10-->1*82-1+0*81-1= 十進制數8

(2)二進制轉八進制:三位一組,轉換為十進制數,然後拼接

  • 二進制數11101010-->011 101 010-->3 5 2--> 八進制數352

4.十六進制、二進制、十進制轉換

(1)十六進制轉十進制:按權位求和

  • 十六進制數4AF8B-->4*165-1
    +10*164-1+15*163-1+8*162-1+11*161-1= 十進制數307083

(2)二進制轉十六進制:四位一組,轉換為十進制數,然後拼接

  • 二進制數01001010111110001011-->0100 1010 1111 1000 1011-->十六進制數4AF8B

(3)十六進制轉二進制:將每一位十六進制數用對應的四位二進制數替代

  • 十六進制數4AF8B-->4 A F 8 B-->0100 1010 1111 1000 1011

機器數與真值

機器數:一個數在計算機中的二進制表現形式,叫做這個數的機器數。機器數是帶符號的,計算機用一個數的最高位存放符號,正數為0,負數為1。

  • 如十進制數 +7,計算機字長為8位,轉換為二進制就是00000111。如果是-7,即為10000111。這裏的00000111和10000111就是機器數。

真值:將帶符號位的機器數對應的真正數值稱為機器數的真值。

  • 機器數的第一位是符號位,所以機器數的形式數值不等於真正的數值。例如上面的有符號數10000111,最高位1代表負,其真值為-7,而形式值(10000111轉換成十進制數)為135。

原碼、反碼及補碼

人腦可以知道第一位是符號位,選擇對真值區域加減,但計算機辨別“符號位”會讓計算機的基礎電路設計變得十分復雜,於是人們想出了將符號位也參與運算的方法,減去一個正數等於加上一個負數,所以機器可以只有加法,這樣計算機運算的設計就更簡單了。

人們為了將符號位參與運算,並且只保留加法,從而簡化計算機運算,發明了原碼、反碼和補碼。

原碼、反碼、補碼都是有符號的用二進制表示數的方法,均由符號位和數值位構成。

1.原碼

原碼是符號位加上真值的絕對值,即用第一位表示符號,其余位表示值。

  • +25的原碼=0001 1001
  • -25的原碼=1001 1001
  • 8位二進制數的取值範圍是[1000 0000,0111 1111],即[-128,127]。補碼範圍[0000 0000,0111 1111],補碼0000 0000的原碼是1000 0000,符號位同時也可以看做數字位,即表示-128。

2.反碼

正數的反碼是其本身

負數的反碼是在其原碼的基礎上,符號位不變,其余各個位取反

  • +25-->原碼0001 1001-->反碼0001 1001
  • -25-->原碼1001 1001-->反碼1110 0110

3.補碼

正數的補碼是其本身

負數的補碼是其反碼+1

  • +25-->原碼0001 1001-->反碼0001 1001-->補碼0001 1001
  • -25-->原碼1001 1001-->反碼1110 0110-->補碼1110 0111

在計算機系統中,數值一律用補碼表示(存儲)

數據概述與進制轉換