深刻理解計算機系統學習(無符號左移,右移)

移位操做有邏輯移位和算術移位spa

   邏輯移位是不考慮符號位的移位,算術移位是考慮符號位的移位。code

一、無符號移位 blog

例如右移class

  unsigned char  x = 0x80  二進制

   二進制 表示是  1000 0000  ,十進制是128 移動

 右移動一位,低位補0 變爲     0000 0000  ,十進制是 0di

     unsigned char    x = 0x80;
     unsigned  char y = (x << 1);
     printf("%.2x\n", y );    

輸出  00Hco

  二進制表示 0000 0000  ,十進制 0 printf

  這種狀況是溢出了

 

左移

 

  unsigned char  x = 0x80 

  左移動一位,高位補0 變爲     0100 0000

     unsigned char    x = 0x80; unsigned char y = (x >> 1); printf("%.2x\n", y ); 

輸出  40

  二進制表示 0100 0000  ,十進制 64

 移位前是128 ,移位後是64,左移一位是除2

相關文章
相關標籤/搜索