C的移位位運算符。移位運算符向左或向右移動位。
左移運算符(<<)將其左側運算對象每一位的值向左移動其右側運算對象指定的位數。
左側運算對象移出左末端位的值丟失,用0填充空出的位置.
下面例子中,每一位都向左移動兩個位置:
(10001010) << 2 //表達式
(00101000) << 2 //結果值
該操作產生了一個新的位值,但是不改變其運算對象。例如,假設stonk為1,那么stonk << 2為4,但是stonk本身不變,仍為1。
可以使用左移賦值運算符(<<=)來更改變量的值。
該運算符將變量中的位向左移動其右側運算對象給定值的位數,如下例:
int stonk = 1;int onkoo;onkoo = stonk << 2; /* 把4賦值給onkoo */stonk <<= 2; /* 把stonk的值改為4 */
右移運算符,將其左側運算對象每一位的值向右移動其右側運算對象指定的位數。
左側運算對象移出右末端位的值丟失。
對于無符號類型,用零填充空出的位置;對于有符號類型,其結果取決于機器。
空出的位置可用0填充,或者用符號位(即最左端的位)的副本填充:
(10001010)>> 2 //表達式,有符號值
(00100010) //在某些系統中的結果值
(10001010)>> 2 //表達式,有符號值
(11100010) //在另一些系統上的結果值
下面是無符號值的例子:
(10001010)>> 2 //表達式,無符號值
(00100010) //所有系統都得到該結果值
每個位向右移動兩個位置,空出的位用0填充。
右移賦值運算符(>>=)其左側的變量向右移動指定數量的位數,如下所示:
int sweet = 16; //二進制值為:0001 0000 int ooosw;ooosw = sweet >> 3; // 右移三位2進制值W為:0000 0010, 十進制ooosw = 2,sweet的值仍然為16sweet >>=3; //sweet的值為2 ‘>>=’是右移賦值運算符
移位運算符針對2的冪提供快速有效的乘法和除法:
number << n num乘以2的n次冪
number >> n 如果number為非負,則用number除以2的n次冪
這些移位運算符,類似于在10進制中,移動小數點來乘以10或除以10。
移位預算符還可以用于較大單元中提取一些位。例如用一個unsigned long類型的值表示顏色值,低階位字節存儲紅色的強度,下一個字節存儲綠色的強度,第3個字節存儲藍色的強度。
隨后你希望把每種顏色的強度分別存儲在3個不同的類型的變量中,那么可以使用你下面的語句:
#define BYTE_MASK 0xffunsigned long color = 0x002a162f;unsigned char blue, green, red;red = color & BYTE_MASK;green = (color >> 8) & BYTE_MASK;blue = (color >> 16) & BYTE_MASK;
以上代碼中使用右移運算符,將8位顏色值移動至低階字節,然后使用掩碼技術把低階字節賦值給指定的變量。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...
在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...
在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...
如何使用易信消息對話?...
英雄聯盟S7小組賽賽制賽程是什么樣的?目前英雄聯盟S7賽季半決賽的賽程已經完全確定,今年比半決賽更好的一點是LPL兩隊同時進入了四強,而且沒有分到同一組,避免了內戰;時間:10月28日—10月29日地點:上海東方體育中心參賽隊伍:LPL賽區:RNG、we;Lck賽區:SKT、SSG;賽制安排:bo5半決賽采用五局三勝制,先勝三局的隊伍晉級決賽;賽程安排:【SKT vs RNG,10月28日15:3...
蘋果手機為新的iphone做準備怎么用?新入手的iPhone,提前開啟這四項功能,讓手機能用幾次。1.應用資源庫APP資源庫加入蘋果 s ios 14系統,可以自動整理應用和文件。綜上,桌面看起來更干凈,找應用更方便。但是很多人反映用起來不是很方便。但是現在對于app資源庫來說,加入了全新的分屏模式,查看APP資源庫方便了很多。2.聚焦模式必須開啟專注模式,這樣可以讓你更高效專注的處理一些事情。您...