本文目錄一覽:
C語言左移
05左移5位,即000000
06左移6位,即0000000
左移後是用二進制表示的,
具體的這個程序中有什麼用,應該看程序本身,
就像#define PI_FRMERR (0 5)
用000000代替PI_FRMERR可能與某個數進行與操作或其他的。
C語言左移和右移
C語言中左移表示左移運算符,就是把最高位丟棄掉然後在最低位補0;而C語言中的右移就是右移運算法,與左移是相反的,它是往右邊挪動若干位。
C語言按位左移運算規則
C語言中按位左移的運算符為,其規則如下:
對於操作an,
1 按照二進制值每位向高位(書寫上是向左)移動n位;
2 最高位(最左邊的)n位捨去;
3 最低位(最右邊)填加n個0.
簡單起見,用char型舉例如下:
例一
0x12 3 =
B00010010 3 =
B10010 000(這裡最高位的三個0被捨去,其它依次左移,最低位補三個0) =
0x90
即0x12 3 = 0x90
例二
0x9E 2 =
B10011110 2 =
B01111000 (最高位10捨去,最低位補兩個0)=
0x78
可以編寫如下程序驗證:
#include stdio.h
void check(char a, int n)
{
printf(“0x%hhx %d = 0x%hhx\n”, a, n, an);
}
int main()
{
check(0x12, 3);
check(0x9e, 2);
return 0;
}
其運行結果為
0x12 3 = 0x90
0x9e 2 = 0x78
可以看到與我們計算結果是相符的。
C語言中怎樣表示移位啊?例如將某個值左移兩位
利用位操作:””就是左移 “”就是右移
舉個例子:將a左移2位,然後賦給a
a=2 也即是a=a2
在C語言中左移1位,相當於乘2,右移相當於除2。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/206960.html