本文目錄一覽:
c語言左移操作
這個是將內存地址0x0000里的數右移5位並強制轉化成UINT8,具體是幹什麼的要看具體的代碼了,一般是截取數據的某幾位進行操作
C語言左位移運算符和右位移運算符是什麼意思,怎麼運算,舉個例子..
就是把一個數轉化成二進位再直接對他進行操作
例如:
452 //45右移兩位
45的二進位為:101101
右移兩位就為: 001011
001011再轉化為十進位為:11
所以452= 11
左移運算符
452
45的二進位為:101101
左移兩位就為:10110100
10110100再轉化為十進位為:180
所以452=180
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
可以看到與我們計算結果是相符的。
原創文章,作者:GKVM,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147319.html