关于位运算
  • 板块学术版
  • 楼主TLE_Forever
  • 当前回复38
  • 已保存回复38
  • 发布时间2021/10/5 21:12
  • 上次更新2023/11/4 04:41:02
查看原帖
关于位运算
286238
TLE_Forever楼主2021/10/5 21:12
char a=10;
a=~a;
a<<=1; a>>=1;
printf("%d\n",a);

预期输出为117117,但实际输出为11-11

C++标准为-std=c++11

~a的值是11=(11110101)2-11=(11110101)_2可以理解,但是向左向右移动之后最左边的符号位不应该抵消了吗?变成了(01110101)2=117(01110101)_2=117,可是为什么仍然输出11-11

2021/10/5 21:12
加载中...