求解释这个代码的输出是什么情况,c语言中~的优先级是明明高于>>,结果第一个输出竟然跟第三个输出相同的结果,这是为什么
#include <stdio.h>
void main()
{
unsigned char a=0xA5;
unsigned char b=~a>>5;
unsigned char c1=~a;
unsigned char b1=c1>>5;
unsigned char c2=a>>5;
unsigned char b2=~c2;
printf("%d,%d,%d\n",b,b1,b2);
}
#include <stdio.h>
void main()
{
unsigned char a=0xA5;
unsigned char b=~a>>5;
unsigned char c1=~a;
unsigned char b1=c1>>5;
unsigned char c2=a>>5;
unsigned char b2=~c2;
printf("%d,%d,%d\n",b,b1,b2);
}