精華區beta ESOE-90 關於我們 聯絡資訊
※ 引述《kimuro (有青我就是世界)》之銘言: : 能不能教一下教授當天說的那個 : 以2為基準 有正負號又有補數的那個 : 那邊我弄不太懂 我們從四個位元說起... 0 0 0 0 0000 0001 0010 0011 0100 0101 0110 0111 <- 0 1 2 3 4 5 6 7 1000 1001 1010 1011 1100 1101 1110 1111 <- 8 9 a b c d e f 這十六個數字, 是 0000 能變化出來的所有數字, 分別是 0 ~ 15. 我以十六進位表示... 上面是正整數的部份... 那麼負數怎麼表示? 我們把 0000 最左邊那個位元(the most significant bit/the highest bit). 拿出來作正負號, 取 0 為正, 取 1 為負... 剩下三個位元, 則是取 1 的補數(complement)... 之所以要對一取補數, 是為了符合加法運算. ************************************************************* 補數也是數論裡頭的東西... 電腦裡頭的 1 的補數... 基本上牽扯到電腦要怎麼做加法運算, 才能得到加法的單位元素 0. 所以就交給數學系的去弄吧. 我們只要知道, 取 1 的補數, 就是把 0 變為 1, 1 變為 0. ************************************************************* 這樣就變化出下面這組數字... 0000 0001 0010 0011 0100 0101 0110 0111 <- 0 1 2 3 4 5 6 7 1111 1110 1101 1100 1011 1010 1001 1000 <- -0 -1 -2 -3 -4 -5 -6 -7 也就是正負七之間, 共『十五』個數字. 少一個是因為 0000 == 1111, 都是零... 這樣蠻浪費的. 於是有 2 的補數, 也就是取 1 的補數之後再加 1. (這個運算一樣是數學問題, 請用背的! ) 0000 0001 0010 0011 0100 0101 0110 0111 : 0 1 2 3 4 5 6 7 1111 1110 1101 1100 1011 1010 1001 1000 : -1 -2 -3 -4 -5 -6 -7 -8 麻煩自己拿紙筆算一下, 不然會看不懂... ex: 1110 -> 負的 -> 去正負號得 110 -> 取 1 的補數得 001 -> 加 1 得到 2 的補數 010 所以, 1110 的值是 -2... 這是表示法... 另外還有加法. 老師則是把四個位元擴充成八個位元... -- 新詩練習:新鮮。踩破初春裡的狗大便;不經意的滄桑,滿溢著嫩黃的喜悅。 -- ※ 發信站: 批踢踢實業坊(ptt.csie.ntu.edu.tw) ◆ From: 61.224.161.213