作者mayonaise (就用一個人的快樂吧)
看板HSNU_HIGH
標題[駭駭] 大家來學二進位補數法!
時間Mon Jan 29 21:52:02 2007
[數值表示法]
一般在電腦中的資料,大致可以區分為文字資料與數值資料兩種。
[整數表示法]
由於負數的表示法會影響電腦運算速度,通常電腦中的負數表示法,
多半是利用「補數」的概念。所謂整數,就是不帶小數點的數,範圍
包括0、正整數、負整數。在電腦系統中只能以固定位數表示數字,
所用的位元組(bytes)越大,儲存位數越大。
‧不帶號整數
就是正整數,並且再儲存時不帶任何符號位元。例如一個正整數
是以一個位元組(8 bits)來儲存,則共能表示28=256個數字,
且數字範圍為0 ~ 255。
‧帶號整數
正負整數,必須利用額外的1bit來表示符號位元,符號位元為0
表示為正數,如果是1則代表為負數,其他剩下的位元則表示此
整數的數值。
[補數]
‧ 1補數系統(1′s Complement)
「1補數系統」是指如果兩數之和為1,則此兩數互為1的補數,
亦即0和1互為1的補數。
轉換法 → 最左邊的位元同樣是表示正負號,它的正數的表示法
和帶號大小值法完全相同,當表示負數時,由0變成1,
而1則變成0,並得到一個二進位字串。
ex. 9 =(00001001),則其「1 's補數」即為11110110
‧ 2補數系統(2′s Complement)
「2補數系統」的作法則是必須事先計算出該數的1補數,再加1
即可。
轉換法 → 最左邊的位元還是符號表示位元,正數的表示法則與帶
號大小值法相同,但負數的表示法是用1 補數法求得,
並在最後一位元上加1。
ex. 9 =(00001001) ,其「2 's補數」則為11110111
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.245.74.23
推 jerryLinda:Allen你最近論文找資料找的很勤齁!!! 01/31 01:06
推 mayonaise:你不懂啦 我跟Marley很認真耶 01/31 02:18
推 HomeboyWu:沒考啦...阿冷你加密會不會啊? 02/01 18:24
推 mayonaise:不會... 02/03 15:43