计算机数据表示实验报告,实验报告二数据的表示

《实验报告二数据的表示》由会员分享,可在线阅读,更多相关《实验报告二数据的表示(4页珍藏版)》请在人人文库网上搜索。

1、计算机系统基础实验报告学院 信电学院 专业 计算机科学与技术 班级 计算机1401 学号 姓名 段登赢 实验时间: 一、 实验名称:数据的表示1二、 实验目的和要求:(1)实验目的:熟悉数值数据在计算机内部的表示方式,掌握相关的处理语句。(2)实验要求:说明你做实验的过程(重要步骤用屏幕截图表示);提交源程序;分析并回答问题。三、 实验环境(软、硬件):软件环境:操作系统:Ubuntu ,版本:15.04编译器软件:GCC, 版本:5.4.0 硬件环境:处理器:i386处理器处理器个数:双处理器总核心数:四核处理器位数:32位四、 实验内容:(1)下述两个结构所占存储空间多大?结构中各分量所在。

2、位置相对于结构起始位置的偏移量是多少?请编写程序以验证你的答案。struct test1char x23;short x32;int x1;long long x4;struct test2char x23;short x32;int x1;long long x4;__attribute__(aligned(8);(2)“-2 void main()union NUMint a;char b4; num;num.a = 0x;printf(0x%Xn, num.b2);五、 实验结果及分析:(1)(2)实验分析:正数的源码,反码,补码都相同,负数在计算机存储时按补码存储和运算,源码除符号位外。

3、将每一位按位取反最后加一而来。在32位计算机中int占4个字节共32位。所以-2在内存中的存储方式:1,111 1111 1111 1111 1111 1111 1111 1110B即fffffffeH,此时最高位为符号位,2在内存中的存储方式:0,000 0000 0000 0000 0000 0000 0000 0010B即2H,此时最高位为符号位。2u在内存中的存储方式:0000 0000 0000 0000 0000 0000 0000 0010B即2H,但此时最高位不再是符号位。由上述可知:-2c,所以输出unsigned short is 1(4)实验分析:由于在union共用体当。

4、中,int a 和char b4数据公用同一段内存地址,而此时a和b同时占用四个字节,所以当执行num.a = 0x;同时b也会被赋值,b的内存示意图如下:b的值87654321b的地址b0b1b2b3由上图可知执行printf(0x%Xn, num.b2);会输出0x34。现在解释为什么会出现表中的情况对于数组来说,下标越小地址越小,下标越大地址越大,而a=0x这个值中,1和2分别在最高位和次高位,它就会存储在下标大的b3中,以此类推,便可以得到表中的数据。这也证明了我的32位Ubuntu是小端存储(字数据的高字节存储在高地址中,而字数据的低字节则存储在低地址中)。六、 实验心得通过这次实验让我对结构体和公共体有了更为深入的理解,首先我明白了结构体中成员的对齐理论,知道了在结构体中数据成员初始化顺序的不同也会影响到该结构体所占的内存空间的大小。其次我也学到了公共体的成员的内存地址是相同的,并且自己通过实验也亲自验证了这一结论。并且再一次巩固了C语言中数据类型之间的自动转换,无符号数与有符号数之间的转换规则。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值