新聞速報

        

2014年2月27日 星期四

位元運算

從I/O位址讀出一組Byte(十進制)數值 0~255 ,判斷其特定位元的值。
 
  Byte = 0 ~ 255 (10進制)
    = 0 ~ FF (16進制) 
    = 0000 0000 ~ 1111 1111 (2進制)
 
 
(A)請判斷該 Byte 的數值 = 143、201、170,是否滿足下列條件:
  1. 第 7 位元 = 1
  2. 第 5 位元 = 0
  3. 第 3 位元 = 1
 
    也就是 1x0x1xxx
 
Ans:
  該條件 1x0x1xxx 有 位元=1、位元=0 兩種格式的判斷。
 
  將條件 1x0x1xxx 拆為兩種數值,並逐一判斷
  判斷 位元=1 要用 AND 來運算 1xxx1xxx -> 10001000 -> 136 (10進制)
  判斷 位元=0 要用 OR 來運算 xx0xxxxx -> 11011111 -> 223 (10進制)

 143 = 10001111 
 
  143 and 136 = 136 (判斷 位元=1,結果成立)
  143 or 223 = 223 (判斷 位元=0,結果成立)
 
  143 滿足上述兩種運算條件

 201 = 11001001 
 
  201 and 136 = 136 (判斷 位元=1,結果成立)
  201 or 223 = 223 (判斷 位元=0,結果成立)
 
  201 滿足上述兩種運算條件

 170 = 10101010 
 
  170 and 136 = 136 (判斷 位元=1,結果成立)
  170 or 223 = 255 (判斷 位元=0,結果不成立)
 
  170 無法滿足上述兩種運算條件

沒有留言:

張貼留言