【C语言练习题】数据在内存中的存储-创新互联

文章目录
  • 第一题:涉及知识点(整型在内存中的存储)
  • 第二题:涉及知识点(大小端存储)

为东港等地区用户提供了全套网页设计制作服务,及东港网站建设行业解决方案。主营业务为成都网站建设、做网站、东港网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!第一题:涉及知识点(整型在内存中的存储)

在这里插入图片描述
解析:
char类型的取值范围是-127~128;
unsigned char类型的取值范围是:0~255;
所以题目中:unsigned char aunsigned char b是放得下200与100的。

a的二进制为:11001000;
b的二进制为:01100100;

a的补码为:00000000000000000000000011001000;
b的补码为:00000000000000000000000001100100;
a+b补码为:0000000000000000000000100101100;

%d的形式打印a+b,就会打印出 上面计算出a+b的补码转换成原码的结果(正数的原码=反码=补码);
所以a+b以%d打印出来的应该是300

题目中c=a+b,由于c的类型是unsigned char,所以a+b的补码放到c会发生截断,
所以截断后的c的补码为00101100;
%d的形式打印:c进行整型提升:00000000000000000000000000101100
所以c以%d的形式打印出来的应该是:44

在编译器中验证结果:
在这里插入图片描述

第二题:涉及知识点(大小端存储)

在这里插入图片描述

大端(存储)模式,是指数据的低位字节保存在内存的高地址中,而数据的高位字节,保存在内存的低地址中;
小端(存储)模式,是指数据的低位字节保存在内存的低地址中,而数据的高位字节,,保存在内存的高地址中;

题目中unsigned int a= 0x1234;int是4个字节,补齐a应是0x 00 00 12 34
在这里插入图片描述
把a强制类型转换成unsigned char后,由于int–>char发生截断:
在这里插入图片描述
所以最后答案选A

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


新闻标题:【C语言练习题】数据在内存中的存储-创新互联
网站URL:http://ybzwz.com/article/cojgec.html