|
本帖最后由 wynew8au 于 2018-4-2 17:27 编辑
C语言,位运算符<< >> | 和 & 在运算的时候是否都是先转成 unsigned int 再进行运算的,
麻烦各位老师不吝赐教,谢谢。
#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int n = 4;
unsigned char tempx = 0xff;
tempx = (tempx<<n) >> n;
printf("%x\n",tempx);//得到 0xff
printf("%x\n",(tempx<<24) | 0x03);//得到 0xff000003
unsigned char tempxs = 0xff;
tempxs = tempxs<<n;
tempxs = tempxs>>n;
printf("%x\n",tempxs);//得到 0x0f
printf("%x\n",tempx & 0xF0);//得到 0xf0
system("pause");
return 0;
}
得到4个结果,0xff ,f0xff000003, 0x0f ,0xf0
|
|