解释关于代码~x的问题

img

1、请问第六行的代码~x为什么结果为65523?
2、请问第七行的~x的结果为什么是-13?

~x就是对x值取反的意思,x值为12,取反就是65523,因为输出是无符号的,unsigned short类型最大值为65535
第7行输出是有符号的,65523有符号时就是-13

! || && 是逻辑运算符,逻辑判断只有真 1 假 0 两个值。
~ | & 是位运算符,顾名思义按位做相应运算。