2014年6月5日 星期四

報告

podomatic
http://chang913222.podomatic.com/entry/2014-06-05T10_43_28-07_00


slideshare
http://www.slideshare.net/chachunchang/ss-35535101

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開始給數字的資料位(從左向右)標上序號, 1,2,3,4,5...
  2. 將這些資料位的位置序號轉換為二進制, 1, 10, 11, 100, 101, 等.
  3. 資料位的位置序號中所有為二的冪次方的位(編號1,2,4,8,等,即資料位位置序號的二進制表示中只有一個1)是校驗位
  4. 所有其它位置的資料位(資料位位置序號的二進制表示中至少2個是1)是資料位
  5. 每一位的封包含在特定的兩個或兩個以上的校驗位中,這些校驗位取決於這些資料位的位置數值的二進制表示
    1. 校驗位 1 覆蓋了所有資料位位置序號的二進制表示倒數第一位是1的資料:1(校驗位自身,這裡都是二進制,下同),11,101,111,1001,等
    2. 校驗位 2 覆蓋了所有資料位位置序號的二進制表示倒數第二位是1的資料:10(校驗位自身),11,110,111,1010,1011,等
    3. 校驗位 4 覆蓋了所有資料位位置序號的二進制表示倒數第三位是1的資料:100(校驗位自身),101,110,111,1100,1101,1110,1111,等
    4. 校驗位 8 覆蓋了所有資料位位置序號的二進制表示倒數第四位是1的資料:1000(校驗位自身),1001,1010,1011,1100,1101,1110,1111,等
    5. 簡而言之,所有校驗位覆蓋了資料位置和該校驗位位置的二進制與的值不為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

2014年3月17日 星期一

補數,整數運算

補數(Complement):是指兩數字加起來等於某數時,則二數互為某數的補數;例如3的10補數為7,7的10補數為3。
二進位系統有
1的補數(1‘ Complement)

2的補數(2’ Complement)

1的補數(1‘ Complement) :指兩數的和為1,則此兩數互為1 的補數,即1和0互為1的補數。
例如:
原數為101101
1補數為010010
即將原數的0變1,1變0
2的補數(2’ Complement):指二兩數的和使每一位均為0而產生溢位(進位)。
求法:先取該數的1補數,再加1即可
例如:求01101的2‘補數為何?
原數為01101
1補數為10010
1的補數再加110011

整數表示法
以二進位(0 & 1)來表示的正整數(無號整數)
比如: 41=00101001
無負號
無標點
以二進位(0 & 1)來表示的正負整數(有號整數)
符號位元表示法
2’s補數表示法

整數加法
正常的二進位整數加法
以符號位元來觀察溢位情況

整數減法
整數減法可以先取負值,再加上這個負值
a - b = a + (-b)
所以,需要:加法電路和補數電路

無號整數乘法
例如:




2014年3月9日 星期日

數字系統

1.二進位系統 (binary system) 是以01等兩個數字做為計數的基底。

2.八進位系統 (octal system) 是以012 ~ 7等八個數字做為計數的基底。

3.十六進位系統 (hexadecimal system) 是以012 ~ 9ABCDEF等十六個數字做為計數的基底。


十進位
二進位
八進位
十六進位
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)將整數部分及小數部分的二進位表示法合併

   
將八或十六進位數字轉換成二進位數字



     

十六進位四個一組,而八進位則三個一組