常见笔试题(2)----sizeof、位、补码

#include <stdio.h>
#include <memory.h>

typedef struct
{
 int a:2;
 int b:2;
 int c:5;
 int d:3;
 int e:8;
 int f:4;
 unsigned int g:4;
}TEST;

int main()
{
 struct test *p;
 TEST t;

 p =(struct TEST *) &t;

 t.a = 1;
 t.b = 3;
 t.c = 1;
 t.d = 3;
 t.e = 3;
 t.f = 9;
 t.g = 9;

 printf("sizeof(TEST) = %d/n",sizeof(TEST));
 printf("t.a = %d/n",t.a);
 printf("t.b = %d/n",t.b);
 printf("t.c = %d/n",t.c);
 printf("t.d = %d/n",t.d);
 printf("t.e = %d/n",t.e);
 printf("t.f = %d/n",t.f);
 printf("t.g = %d/n",t.g);
}

运行结果:

sizeof(TEST) = 4
t.a = 1
t.b = -1
t.c = 1
t.d = 3
t.e = 3
t.f = -7
t.g = 9
Press any key to continue

解析:

t.a =01,所以t.a = 1

t.b = 11,所以t.b = -1

 t.f = [1001]补码,所以t.f = [1111]原码,所以t.f = -7

t.g = 1001,又t.g 是unsigned int ,所以t.g = 9

 

如果理解有误,请指正,谢谢

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

betterzy

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值