Presentation is loading. Please wait.

Presentation is loading. Please wait.

第 3 章 資料和程式表示法.

Similar presentations


Presentation on theme: "第 3 章 資料和程式表示法."— Presentation transcript:

1 第 3 章 資料和程式表示法

2 數位邏輯 硬體工程師使用邏輯閘設計電腦 數位輸入或輸出有兩種可能的狀態: 5V 和 0V high 和 low true 和 false

3 資料表示法 依照階層概念,資料表示法架構 於數位邏輯之上。 集合多個布林位元成為 數字 字元 位址

4 位元(Bit) 數位邏輯數值的直接表示方式 描述數位的兩個可能值: 0 和 1 多個位元可以代表更複雜的資料

5 位元組(Byte) k位元所組成的位元組 K值並沒有任何的強制規定 位元組範例: 現代電腦使用8位元的位元組 CDC使用 6位元的位元組
BBN使用10位元的位元組 IBM 使用10位元的位元組 現代電腦使用8位元的位元組

6 位元組大小和數值 許多電腦使用位元組位址當作最小的記憶體單位。 6位元可以代表 64個數值 8位元可以代表256個數值

7 二進位表示法

8 位元意義 位元本身並沒有任何意義 相關的位元意義通常是由其硬體和軟體來加以詮釋

9 直譯範例 比如:可以使用三個位元,來代表三個電腦周邊設備的狀態,如下: 如果第一位元為1,表示磁碟已經連線。
如果第二位元為1,表示印表機已經連線。 如果第三位元為1,表示鍵盤已經連線。

10 數值 最常使用的階層概念,就是把位元組合後,當作數值。 比如:二進位整數 使用前後順序的位置關係,來代表基底的冪次高低 。

11 位置冪次的轉譯 考慮下列的二進位範例: 010101 根據位置冪次觀念,數值應解譯成:
0×25+1×24+0×23+1×22+0×21+1×20=21

12 數值範圍 一組k位元的組合可以用來代表整數,使用傳統的位置冪次觀念,k位元數值可以代表0到2k-1。

13 十六進位觀念 為了幫助人們表示二進位數值 ,可以使用16進位數值 。 每四個二進制位元編成單一的16進位之位數(代表0~15) 。

14 十六進位之位數

15 十六進位常數 某些程式語言喜歡使用十六進位 典型語法:常數開頭加上0x(零x) 比如: 0xDEC90949

16 字元集 每一種電腦系統都必須定義自己的字元集。 字元集包含英文大寫、英文小寫、數字、標點符號、和特殊符號等。
每一個字元必須使用一個唯一的位元組,來加以代表。

17 字元編碼範例 EBCDIC ASCII Unicode

18 EBCDIC 全名Extended Binary Coded Decimal Interchange Code 1960年代最普遍的編碼方法
IBM公司定義的字元集 目前仍然使用於IBM大型主機上 6位元的字元集

19 ASCII 全名American Standard Code for Information Interchange
ANSI協會定義的字元集 非電腦廠商定義的字元集 ASCII碼制訂128個字元 比如,英文字母a表示法為 (二進制)

20 ASCII字元集

21 Unicode Unicode設計成16位元字元集 這個字元集不但延伸ASCII字元集,也可以容納更多的字元。
適用於所有的語言 ,比如:中文。

22 數端 位元數端 位元組數端

23 位元數端 數端的討論對於彼此之間的資料轉移相當重要,舉例而言,想要在網路上傳送一個位元組時,雙方都必須同意這個位元組是先從最大位元傳送,還是先傳送最小位元!這種位元的排列順序稱為位元數端。

24 位元組數端 同樣把數端主題延伸到多個位元組時,也有一樣的問題,比如:傳送32位元的整數,如果電腦的位元組是8位元,則整數會被分成4位元組,現在到底要先傳送最大的位元組、或先傳最小的位元組!這種位元組的排列順序稱為位元組數端。

25 大端 與 小端

26 二進位整數表示法 使用位置冪次表示法的二進位數值 K位元的組合可以代表2k個數值 電腦習慣使用的k = 8,16,32和64
位置冪次表示法產生無號整數

27 無號整數 最直接的位置冪次表示法 無號整數 每個位數都是2的冪次乘積。 全部是正整數,無法表示負數。 算術運算後可能產生溢位和欠位。
可能有循環觀念。

28 溢位 溢位狀態指示:結果是否超過k位元範圍! 溢出的第k+1位元就是一般所謂的進位

29 有號整數 大部分的程式需要有號整數 有多種表示法 大約有一半的數值,用來表示負數。

30 有號整數表示法 符號位元 1’s補數 2’s補數 注意:以上每種表示法都有各自的優缺點

31 符號位元表示法 可能會出現兩個零值: 正零和負零都是零 儘管不會影響任何的數學觀念,但零值是電腦最常使用的數值,兩個零值恐怕會增加複雜度。

32 1’s補數表示法 比如:4位元的1’s補數表示法 1’s補數也有兩個零值: 依然存在兩個零值的問題。 0010 代表 2 1101 代表-2
所有位元為0 所有位元為1 依然存在兩個零值的問題。

33 2’s補數表示法 比如:4位元的2’s補數表示法 0010 代表 2 1110 代表-2 正數和負數的數量並不對稱 負數比正數多一個數值

34 無號/有號整數之代表意義不同

35 無號/有號整數的硬體需求 不管無號整數或2’s補數表示法,電腦都使用相同的硬體。 執行軟體進行整數算術,只要選擇適合的整數表示法,即可。
比如:1001+1=1010 如果當作 無號整數,則解釋為”把9加1得到10”。 如果當作2’s補數法,則解釋為”把-7加1得到6”。

36 符號延伸 大部分電腦會提供多重位元的能力 問題在於:如何把較少位元數的整數,改成較多位元數的整數呢?
比如:16位元、32位元、和64位元等數值處理能力。 允許程式設計師自由選擇其中一種。 問題在於:如何把較少位元數的整數,改成較多位元數的整數呢?

37 符號延伸的意義 就是延伸最高的符號位元 比如:如何把某個16位元數值改成32位元數值呢? 對齊最小位元,填入低階的16位元資料。
延伸其符號位元,填入高階的16位元。 若是正數(符號位元0),高階16位元都填入0。 若是負數(符號位元1),高階16位元都填入1。

38 符號延伸後的數值大小 在2’s補數法中,一個k位元的整數Q要延伸超過k位元的數值,必須先對齊低階k位元,超過的較高階位元全數填入Q的最高位元(符號位元),這種符號延伸動作並不會影響到原數值的大小。

39 符號延伸範例 8位元有號整數 11111101(-3) 符號延伸成16位元有號整數 11111111 11111101(-3)
數值大小仍然不變

40 科學記號 化學知名的亞佛加厥數之科學記號為6.022×1023 。 其中6.022為有效數 而23則為指數

41 浮點數 電腦的浮點數源於一般的科學記號 但仍有差異 電腦浮點數的基底採用二進位,有些位元表示有效數,有些表示指數。

42 最佳化浮點數格式 數值必須正規化 由於最前頭的位元總是為1,因此可以省略不寫。 指數必須能夠表示負值

43 IEEE 754標準浮點數表示法 分成兩種:單精準度和雙精準度。 單精準度有32位元 雙精準度有64位元

44 特殊浮點數 零值 +∞(正無限大) -∞ (負無限大) 所有位元為0 指數全為1,有效數全為0,S欄位=0。

45 IEEE 754浮點數範圍 單精準度範圍約為 2-126~2127 改以十進位基底來看 單精準度範圍約為10-38~1038
雙精準度範圍約為10-308~10308

46 聚合資料 連續的位元組位址 比如:儲存3 個16位元的聚合資料,會佔據連續6個位元組的位址。

47 結論 底層的數位硬體有兩個可能的輸出值,稱為位元。 集合某些位元用來代表 整數可以使用下列表示法 整數 字元 浮點數 符號位元 1’s補數

48 結論(cont.) 無號整數和2’s補數的算術,使用相同的電腦硬體。 數端分成 ANSI和IEEE組織定義標準的資料表示法 大端順序
小端順序 ANSI和IEEE組織定義標準的資料表示法


Download ppt "第 3 章 資料和程式表示法."

Similar presentations


Ads by Google