podomatic
http://chang913222.podomatic.com/entry/2014-06-05T10_43_28-07_00
slideshare
http://www.slideshare.net/chachunchang/ss-35535101
計算機概論
2014年6月5日 星期四
2014年4月18日 星期五
2014年3月30日 星期日
漢明碼
漢明碼(Hamming Code),是在電信領域的一種線性偵錯碼,以發明者理察·衛斯里·漢明的名字命名。漢明碼在傳輸的訊息流中插入驗證碼,以偵測並更正單一位元錯誤。由於漢明編碼簡單,它們被廣泛應用於記憶體(RAM)。其 SECDED(single error correction, double error detection)版本另外加入一檢測位元,可以偵測兩個或以下同時發生的位元錯誤,並能夠更正單一位元的錯誤。因此,當傳送端與接收端的位元樣式的漢明距離 (Hamming distance) 小於或等於1時(僅有 1 bit 發生錯誤),可實現可靠的通訊。相對的,簡單的奇偶檢驗碼除了不能糾正錯誤之外,也只能偵測出奇數個的錯誤。
下列通用演算法可以為任意位數位產生一個可以糾錯一位(英語:Single Error Correcting)的漢明碼。
- 從1開始給數字的資料位(從左向右)標上序號, 1,2,3,4,5...
- 將這些資料位的位置序號轉換為二進制, 1, 10, 11, 100, 101, 等.
- 資料位的位置序號中所有為二的冪次方的位(編號1,2,4,8,等,即資料位位置序號的二進制表示中只有一個1)是校驗位
- 所有其它位置的資料位(資料位位置序號的二進制表示中至少2個是1)是資料位
- 每一位的封包含在特定的兩個或兩個以上的校驗位中,這些校驗位取決於這些資料位的位置數值的二進制表示
- 校驗位 1 覆蓋了所有資料位位置序號的二進制表示倒數第一位是1的資料:1(校驗位自身,這裡都是二進制,下同),11,101,111,1001,等
- 校驗位 2 覆蓋了所有資料位位置序號的二進制表示倒數第二位是1的資料:10(校驗位自身),11,110,111,1010,1011,等
- 校驗位 4 覆蓋了所有資料位位置序號的二進制表示倒數第三位是1的資料:100(校驗位自身),101,110,111,1100,1101,1110,1111,等
- 校驗位 8 覆蓋了所有資料位位置序號的二進制表示倒數第四位是1的資料:1000(校驗位自身),1001,1010,1011,1100,1101,1110,1111,等
- 簡而言之,所有校驗位覆蓋了資料位置和該校驗位位置的二進制與的值不為0的數。
2014年3月25日 星期二
浮點數
國際電機電子工程師協會(Institute of Electrical and Electronics Engineers IEEE)制定短實數(Short Real)其格式如下 :以32位元來表示浮點數,最左邊位元為符號位元,接著用8個位元來表示指數(Exponent)接著剩下的23個位元來表示假數(Mantissa)的部分。由於二進位中所有科學記號的表示法其結果小數點左邊均為1故可省略不記。
浮點數表示法轉換範例:
符號部分則由於該數(3.14159)為正數故為0
指數部分:指數為1,由於指數部分是採用超127,也就是將原數加上127再放入圖中的指數部分,因此指數部分表示如後:(128)10=(1000 0000)2
假數部分取23位放入圖中的假數部分
(3.14159)10= (11.00100100)2= (1.1001001000011111100111110*21)2
將上述各位元放入記憶體中便可得到如下圖的表示法:
範例:
(35.5)10
=(100011.1)2
=(1.000111000000000000000*25)2
5=(00000101) 2
5超127=(00000101) 2+(01111111) 2
=(1000100) 2
浮點數表示法轉換範例:
符號部分則由於該數(3.14159)為正數故為0
指數部分:指數為1,由於指數部分是採用超127,也就是將原數加上127再放入圖中的指數部分,因此指數部分表示如後:(128)10=(1000 0000)2
假數部分取23位放入圖中的假數部分
(3.14159)10= (11.00100100)2= (1.1001001000011111100111110*21)2
將上述各位元放入記憶體中便可得到如下圖的表示法:
範例:
(35.5)10
=(100011.1)2
=(1.000111000000000000000*25)2
5=(00000101) 2
5超127=(00000101) 2+(01111111) 2
=(1000100) 2
2014年3月17日 星期一
補數,整數運算
補數(Complement):是指兩數字加起來等於某數時,則二數互為某數的補數;例如3的10補數為7,7的10補數為3。
二進位系統有
1的補數(1‘ Complement)
2的補數(2’ Complement):指二兩數的和使每一位均為0而產生溢位(進位)。
求法:先取該數的1補數,再加1即可
例如:求01101的2‘補數為何?
二進位系統有
1的補數(1‘ Complement)
2的補數(2’ Complement)
1的補數(1‘ Complement) :指兩數的和為1,則此兩數互為1 的補數,即1和0互為1的補數。
例如:原數為 | 1 | 0 | 1 | 1 | 0 | 1 |
1補數為 | 0 | 1 | 0 | 0 | 1 | 0 |
即將原數的0變1,1變0 |
求法:先取該數的1補數,再加1即可
例如:求01101的2‘補數為何?
原數為 | 0 | 1 | 1 | 0 | 1 |
1補數為 | 1 | 0 | 0 | 1 | 0 |
1的補數再加1 | 1 | 0 | 0 | 1 | 1 |
整數表示法
以二進位(0 & 1)來表示的正整數(無號整數)
—比如: 41=00101001
—無負號
—無標點
以二進位(0 & 1)來表示的正負整數(有號整數)
—符號位元表示法
—2’s補數表示法
整數加法
正常的二進位整數加法
以符號位元來觀察溢位情況
整數減法
整數減法可以先取負值,再加上這個負值
即 a - b = a + (-b)
所以,需要:加法電路和補數電路
無號整數乘法
2014年3月9日 星期日
數字系統
1.二進位系統
(binary
system) 是以0、1等兩個數字做為計數的基底。
2.八進位系統
(octal
system) 是以0、1、2
~ 7等八個數字做為計數的基底。
3.十六進位系統
(hexadecimal
system) 是以0、1、2
~ 9、A、B、C、D、E、F等十六個數字做為計數的基底。
十進位
|
二進位
|
八進位
|
十六進位
|
0
|
0000
|
0
|
0
|
1
|
0001
|
1
|
1
|
2
|
0010
|
2
|
2
|
3
|
0011
|
3
|
3
|
4
|
0100
|
4
|
4
|
5
|
0101
|
5
|
5
|
6
|
0110
|
6
|
6
|
7
|
0111
|
7
|
7
|
8
|
1000
|
10
|
8
|
9
|
1001
|
11
|
9
|
10
|
1010
|
12
|
A
|
11
|
1011
|
13
|
B
|
12
|
1100
|
14
|
C
|
13
|
1101
|
15
|
D
|
14
|
1110
|
16
|
E
|
15
|
1111
|
17
|
F
|
將二、八、十六進位數字轉換成十進位數字
例如:
將十進位數字轉換成二、八、十六進位數字
(1) 將十進位數字分成整數部分及小數部
(2) 找出整數部分的二進位表示法
(3)找出小數部分的二進位表示法
(4)將整數部分及小數部分的二進位表示法合併
將八或十六進位數字轉換成二進位數字
十六進位四個一組,而八進位則三個一組
訂閱:
文章 (Atom)