Please enable JavaScript.
Coggle requires JavaScript to display documents.
第二章 數字系統 (浮點數表示法(floating-point notation) (切割為3個部分 (3.小數部分(mantissa) (隱藏位元…
第二章 數字系統
浮點數表示法(floating-point notation)
1.存放的資料為小數的數值資料
2.由科學記號表示法演變而來
3.浮點數表示法的小數點位置則必須由數值與精確度來決定,
小數點位置是「浮動」
單倍精準度浮點數(single precision) 32
雙倍精準度浮點數(double precision) 64
延伸精準度浮點數(extended precision)80
切割為3個部分
1.正負符號位元(signed bit)
2.偏移指數(biased exponent)
實際指數 = 偏移指數 – 指數偏移值
3.小數部分(mantissa)
正規化(normalization)
將小數調整為0.1‥‥1×2^n的步驟
隱藏位元
1.x
提高精確度而設計的預設位元
:checkered_flag: 指數偏移植127
[0] [10000100] [00110011....] = 100110.011(2)
-38.375(10) = [1] [100000100] [0011001100...]
二進制數字系統
最高有效位元稱為MSB(Most Significant Bit)
最低有效位元稱為LSB(Least Significant Bit)
~2,1,0,-1,-2~
:checkered_flag:
1001.101(2) = 9.625(10)
6A4(16) = 1700(10)
572(8) = 378(10)
數值運算
加法
溢位(overflow)
使用XOR判斷法
正負符號出現異常狀況,
例如:正整數+正整數的答案應該也是正整數
減法
們必須使用2's補數來表達負數,
而且結果可能會出現超過位元長度的現象,
此時只要將多出的位元去除即可
X-Y=X+(-Y)
乘法
除法
BCD碼(Binary Coded Decimal)
4個位元的BCD碼(0~9)
加權碼(Weighted Codes)= 8 4 2 1
:checkered_flag:
9 = 1001
10 = 0001 0000
七段顯示器電路中,省去二進位轉換十進位時的計算時間
轉換數字系統
整數-短除法餘0結束(先的為LSB)
小數-一直乘 .0停止
:checkered_flag:
0.375(10) = 0.011(2)
766(10) = 2FE(16)
0.28125(10) = 0.48(16)
766(10) = 1376(8)
正負數表示法
帶符號大小
n個位元來表達正負整數時,
正整數的表達範圍是+0~+(2^[n-1] -1)
負整數的表達範圍是-(2^[n-1]-1)~-0
+0與-0是不一樣的
4bit(+7~-7)
1's補數
在1’s補數中,如果要表達負數,
則必須先求得正整數,
然後再將每個位元加以反相(inverse),
就可以得到負整數了
:checkered_flag: -53 = (110101) =001010
2's補數
2's補數的負數表示法為1's補數負數+1
+0與-0的表示法相同
整數範圍是 +(2^[n-1]-1) ~ -2^[n-1]
8bit -128~+127
邏輯運算
文字資料表示法
ASCII碼
7個bits,因此可以產生128種變化
95個字符為可列印字符
中文內碼
BIG5
2個位元組
第一個位元組超過127(也就是7F)時,就可以判定為中文
Unicode
2個位元組
UFT-8的編碼長度並不是固定的8個位元
反射葛雷碼(Reflected Gray Codes)
:checkered_flag:
(Exclusive OR;XOR)運算即可
100101(2) = 110111(反葛)(移一位)
110111(反葛) = 100101(2)(閃電)
具有唯一性
河內塔問題、基因演算法、卡諾圖
超三碼(Excess-3)
BCD+3
自補碼SelfComplementing Codes)
互補數(相加為固定值)
葛雷碼(Gray Codes)
連續兩個數字的葛雷碼,
只會有一個位元不相同
漢明距離(hamming distance)
的定義是兩組數字之間不同位元值的數量,
因此,任何連續兩個葛雷碼數字之間的漢明距離為1。
十進位數(Decimal Digit)有0~9十種變化,每逢『十』就必須進位。
而六十進制一般使用在時間的表達上,也就是逢六十進位,例如:1小時=60分鐘、1分鐘=60秒。
exclusive OR