程序执行后的输出结果是1; #include<stdio.h> main() {char x=(char)0xFF;printf("%d尀n",x--);},为什么

2024-11-15 12:48:33
推荐回答(1个)
回答1:

输出结果是-1。在输出函数中,x 是先输出值,后减1。
0xFF是十六进制数,在内存中存放是二进制的11111111,而变量x是有符号的,也就是11111111是有符号数,最高位1是符号位代表是负数,按照补码形式转换成其原码,也就是将11111111末位减1之后按位取反,即为00000001,也就是1,最后再加上负号则为-1。