1樓:我的奔程
1全部《是位移符號
用來將一個數的各二進位全部左移若干位.例如: a=a<<2
將a的二進位制數左移2位,右補0.若a=15,即二進位制數00001111,左移2位得00111100,即乘了4.但此結論只適用於該數左 移時被溢位捨棄的高位中不包含1的情況.
例如,假設以一個位元組(8位)存一個整數,若a為無符號整型變數,則a=64時,左移一位時溢位的是0,而左移2位時,溢位的 高位中包含1.
說明:左移乘法運算快得多,有些c編譯程式自動將乘2的運算用左移一位來實現,將乘2的n次方的運算處理為左移n位.
a << 28
向左移28為
|是按位與符號
參加運算的兩個資料,按二進位制位進行"或"運算.只要相應的二進位中有一個為1,則該位的結果值為1.即:
例如: 將八進位制60與八進數17進行按位或運算(060|017).
00110000
(|) 00001111
-----------------
00111111
低4們全為1.如果想使一個數a的低4位改為1,只需將a與017進行按位或運算即可.
m (a << 28 | 0)為0
2樓:匿名使用者
是一個靜態常量,在整個函式程式執行過程中,一直不會改變其值。
3樓:匿名使用者
2的28次方,256m
|是按位或,所以|0沒有意義
4樓:匿名使用者
左移28位,實在windows下的32位程式設計嗎?
關於C語言的問題,一個關於C語言的問題
123.456001 這你都發現了,了不起。計算機儲存是2進位制儲存。不要苛求保留幾位,這個在儲存方式上來說沒有意義在資料儲存中,除了2的幾次方分之幾外,如0.5,0.25,0.75,0.125等等也就是1 2,1 4,5 8等這些外 其他的都是近似儲存 舉個很簡單的例子,如0.1你可以手動算一下,...
C語言指標的問題,C語言指標的一個問題
1 第一個框裡的 short temp p1 等價於下面的兩條語句 short temp temp p1 所以,後面 p2 temp 和上面是一致的,沒錯.2 第二個框裡的 沒錯,指標就一個該指向指標,但是你這裡賦值一個值.這種做法是錯誤的,不過對c語言來說,錯的 的意思是 不能保證正確 你是可以 ...
C語言的小問題,C語言的一個小問題。
s格式符表示輸出的是字串,後面對應的引數用字元陣列或是字元指標,c則是輸出單個字元,引數為該字元的ascii碼。char a 12 是字元陣列,賦值 hello world 後成為字串,賦值後,a 0 h a 1 e a 2 l a 3 l a 4 o a 5 空格 a 6 w a 7 o a 8 ...