永发信息网

帮我解释一下这题的答案是怎么来的?急求!!!

答案:1  悬赏:60  手机版
解决时间 2021-05-15 17:43
  • 提问者网友:听门外雪花风
  • 2021-05-15 01:10

#include"stdio.h"
main()
{
unsigned char uchx,*puchx;
char chx;
int x,y;

chx=-4;
uchx=(unsigned char)chx;
puchx=(unsigned char *)&chx;
x=chx;
y=uchx;

printf("puchx=[%d],uchx=[%d],chx=[%d]\n",*puchx,uchx,chx);
printf("x=[%d] y=[%d]\n",x,y);
getch();
}

答案是:252 252 -4

-4 252

最佳答案
  • 五星知识达人网友:猎心人
  • 2021-05-15 01:53
貌似给你答过啊 还不能理解吗?
因为-4用2进制表示是
1000 0100
第一位代表符号位
计算机存储负数是以补码的形式存放的
反码11111011+1
所以是1111 0100
转换成无符号形式
就没有符号位 第一位表示数值
运算结果就是252
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯