资料和程式表示法讲解
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• -∞ (負無限大)
– 指數全為1,有效數全為0,S欄位=1。
44
IEEE 754浮點數範圍
• 單精準度範圍約為 2-126~2127 • 改以十進位基底來看
– 單精準度範圍約為10-38~1038 – 雙精準度範圍約為10-308~10308
45
聚合資料
• 連續的位元組位址 • 比如:儲存3 個16位元的聚合資料, 會佔據連續6個位元組的位址。
41
最佳化浮點數格式
• 數值必須正規化 • 由於最前頭的位元總是為1, 因此可以省略不寫。 • 指數必須能夠表示負值
42
IEEE 754標準浮點數表示法
• 分成兩種:單精準度和雙精準度。 • 單精準度有32位元 • 雙精準度有64位元
43
特殊浮點數
• 零值
– 所有位元為0
• +∞(正無限大)
– 指數全為1,有效數全為0,S欄位=0。
26
無號整數
• 最直接的位置冪次表示法 • 無號整數
– 每個位數都是2的冪次乘積。 – 全部是正整數,無法表示負數。 – 算術運算後可能產生溢位和欠位。 – 可能有循環觀念。
27
溢位
• 溢位狀態指示:結果是否超過k位元範圍! • 溢出的第k+1位元就是一般所謂的進位
28
有號整數
• 大部分的程式需要有號整數 • 有多種表示法 • 大約有一半的數值,用來表示負數。
– 如果第一位元為1,表示磁碟已經連線。 – 如果第二位元為1,表示印表機已經連線。 – 如果第三位元為1,表示鍵盤已經連線。
9
數值
• 最常使用的階層概念,就是把位元 組合後,當作數值。 • 比如:二進位整數 • 使用前後順序的位置關係,來代表 基底的冪次高低 。
10
位置冪次的轉譯
• 考慮下列的二進位範例: 010101 • 根據位置冪次觀念,數值應解譯成: 0×25+1×24+0×23+1×22+0×21+1×20=21
15
字元集
• 每一種電腦系統都必須定義自己的 字元集。 • 字元集包含英文大寫、英文小寫、 數字、標點符號、和特殊符號等。 • 每一個字元必須使用一個唯一的位 元組,來加以代表。
16
字元編碼範例
• EBCDIC • ASCII • Unicode
17
EBCDIC
• 全名Extended Binary Coded Decimal Interchange Code • 1960年代最普遍的編碼方法 • IBM公司定義的字元集 • 目前仍然使用於IBM大型主機上 • 6位元的字元集
• Unicode設計成16位元字元集 • 這個字元集不但延伸ASCII字元集, 也可以容納更多的字元。 • 適用於所有的語言 ,比如:中文。
21
數端
• 位元數端 • 位元組數端
22
位元數端
數端的討論對於彼此之間的資料轉移相 當重要,舉例而言,想要在網路上傳送 一個位元組時,雙方都必須同意這個位 元組是先從最大位元傳送,還是先傳送 最小位元!這種位元的排列順序稱為位 元數端。
• 比如:4位元的1’s補數表示法
– 0010 代表 2 – 1101 代表-2
• 1’s補數也有兩個零值:
– 所有位元為0 – 所有位元為1
• 依然存在兩個零值的問題。
32
2’s補數表示法
• 比如:4位元的2’s補數表示法
– 0010 代表 2 – 1110 代表-2
• 正數和負數的數量並不對稱
46
結論
• 底層的數位硬體有兩個可能的 輸出值,稱為位元。 • 集合某些位元用來代表
– 整數 – 字元 – 浮點數
• 整數可以使用下列表示法
– 符號位元 – 1’s補數 – 2’s補數
47
結論(cont.)
• 無號整數和2’s補數的算術,使用相同 的電腦硬體。 • 數端分成
– 大端順序 – 小端順序
35
符號延伸
• 大部分電腦會提供多重位元的能力
– 比如:16位元、32位元、和64位元等數 值處理能力。 – 允許程式設計師自由選擇其中一種。
• 問題在於:如何把較少位元數的整數, 改成較多位元數的整數呢?
36
符號延伸的意義
• 就是延伸最高的符號位元 • 比如:如何把某個16位元數值改成32 位元數值呢?
• 數位邏輯數值的直接表示方式 • 描述數位的兩個可能值: 0 和 1 • 多個位元可以代表更複雜的資料
4
位元組(Byte)
• k位元所組成的位元組 • K值並沒有任何的強制規定 • 位元組範例:
– CDC使用 6位元的位元組 – BBN使用10位元的位元組 – IBM 使用10位元的位元組
• 現代電腦使用8位元的位元組
29
有號整數表示法
• • • • 符號位元 1’s補數 2’s補數 注意:以上每種表示法都有 各自的優缺點
30
符號位元表示法
• 可能會出現兩個零值:
– 正零 – 負零
• 正零和負零都是零 • 儘管不會影響任何的數學觀念,但零 值是電腦最常使用的數值,兩個零值 恐怕會增加複雜度。
31
1’s補數表示法
5
位元組大小和數值
• 許多電腦使用位元組位址當作最小 的記憶體單位。 • 6位元可以代表 64個數值 • 8位元可以代表256個數值
6
二進位表示法
7
位元意義
• 位元本身並沒有任何意義 • 相關的位元意義通常是由其 硬體和軟體來加以詮釋
8
直譯範例
• 比如:可以使用三個位元,來代表三個 電腦周邊設備的狀態,如下:
– 對齊最小位元,填入低階的16位元資料。 – 延伸其符號位元,填入高階的16位元。
• 若是正數(符號位元0),高階16位元都填入0。 • 若是負數(符號位元1),高階16位元都填入1。
37
符號延伸後的數值大小
在2’s補數法中,一個k位元的整數Q要 延伸超過k位元的數值,必須先對齊低 階k位元,超過的較高階位元全數填入 Q的最高位元(符號位元),這種符號 延伸動作並不會影響到原數值的大小。
第3章 資料和程式表示法
1
數位邏輯
• 硬體工程師使用邏輯閘設計電腦 • 數位輸入或輸出有兩種可能的狀態:
– 5V 和 0V
– high 和 low – true 和 false
2
資料表示法
• 依照階層概念,資料表示法架構 於數位邏輯之上。 • 集合多個布林位元成為
– 數字 – 字元 – 位址
3
位元(Bit)
• ANSI和IEEE組織定義標準的資料表 示法
48
23
位元組數端
同樣把數端主題延伸到多個位元組時, 也有一樣的問題,比如:傳送32位元的 整數,如果電腦的位元組是8位元,則 整數會被分成4位元組,現在到底要先 傳送最大的位元組、或先傳最小的位元 組!這種位元組的排列順序稱為位元組 數端。
24
大端 與 小端
25
二進位整數表示法
• • • • 使用位置冪次表示法的二進位數值 K位元的組合可以代表2k個數值 電腦習慣使用的k = 8,16,32和64 位置冪次表示法產生無號整數
38
符號延伸範例
• 8位元有號整數 11111101(-3) • 符號延伸成16位元有號整數 11111111 11111101(-3) • 數值大小仍然不變
39
科學記號
• 化學知名的亞佛加厥數之 科學記號為6.022×1023 。
– 其中6.022為有效數 – 而23則為指數
40
浮點數
• 電腦的浮點數源於一般的科學記號 • 但仍有差異 • 電腦浮點數的基底採用二進位,有些 位元表示有效數,有些表示指數。
– 負數比正數多一個數值
33
無號/有號整數之代表意義不同
34
無號/有號整數的硬體需求
• 不管無號整數或2’s補數表示法,電 腦都使用相同的硬體。 • 執行軟體進行整數算術,只要選擇適 合的整數表示法,即可。 • 比如:1001+1=1010
– 如果當作 無號整數,則解釋為”把9加 1得到10”。 – 如果當作2’s補數法,則解釋為”把-7加 1得到6”。
18
ASCII
• 全名American Standard Code for Information Interchange
– ANSI協會定義的字元集 – 非電腦廠商定義的字元集
• ASCII碼制訂128個字元
– 比如,英文字母a表示法為 01100001 (二進制)
Байду номын сангаас
19
ASCII字元集
20
Unicode
11
數值範圍
• 一組k位元的組合可以用來 代表整數,使用傳統的位置 冪次觀念,k位元數值可以 代表0到2k-1。
12
十六進位觀念
• 為了幫助人們表示二進位數值 , 可以使用16進位數值 。 • 每四個二進制位元編成單一的16 進位之位數(代表0~15) 。
13
十六進位之位數
14
十六進位常數
• 某些程式語言喜歡使用十六進位 • 典型語法:常數開頭加上0x(零x) • 比如: 0xDEC90949