作业帮 > 综合 > 作业

为什么c语言中-10>>2+3的值为-1

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/06/05 01:12:32
为什么c语言中-10>>2+3的值为-1
首先,得搞清楚右移操作符">>"和加操作"+"的优先级:(优先级部分截图)

可见+操作优先级高,所以这个问题也就是为什么-10>>5的值为-1了

-10的二进制表示为"10110",将其右移,因为原来是负数,所以左边高位用“1填补”,一共移动五次:
“11011”
“11101”
“11110”
“11111”
“11111”
"11111"表示的就是-1,所以值为-1
再问: Ϊʲô10�Ķ�������1010����-10��10110��
再答: ����Dz���ı�ʾ��ʽѽ��������еĶ������Dz������㣬�ٸ����ӣ�10��1010��ǰ����λΪ0����01010��-10Ϊ10110,����Ļ���01010+10110����00000�����λ���һ��1��00000��Ϊ0�������ֻ����ǰ��