2015年1月13日 星期二

簡單的演算法隨筆-二進位法

二進位演算法2^n
         1   1   1   1   1   1   1   1
n=    7   6   5   4   3   2   1   0

以上是為8bit 2進位輸入法
所以2^8總共可以表現多少數字呢?
答案是255
(2^7+2^6+…..2^0=255)

+1進位後
會如下
         1 0 0 0 0 0 0 0 0
n=    8 7 6 5 4 3 2 1 0
為9bit
所以,計算最簡單的計算方法
就為2^8-1(不是2^7+1喔!)


此數量(255)
換算為10^m進位法呢

       2 5 5
m= 2 1 0
[ 2(10^2)+5(10^1)+5(10^0) ]


2進位該怎麼乘呢?

比如說1010011101 乘4,結果會是如何呢?
如果是以人類觀點來算,是先將2進位換算為10進位,乘4後再換回2進位
換算10進位後答案為669
669*4=2676
換算為二進位法後
答案為101001110100

但以電腦的想法
有一個概念
“<<“-shift
結果直接為101001110100
對電腦來說,乘4就為2^2

所以就在後面多加兩個零就解決啦~


沒有留言:

張貼留言