数据的机器表示与处理实验[1]

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据的机器表示与处理-实验

实验1、

答:带符号整数以二进制补码储存,-1存为11(32个1)11,以无符号整数输出则将二进制转换为10进制输出,结果为4294967296。

无符号整数以二进制形式存储,2147483648为10000(31个0),以带符号整数形式输出就是将补码第一位取正负,再转换成原码输出绝对值10000(31个0),为-2147483648。

实验2、用C语言实现下列主要代码:

int func1 (unsigned word)

{

return (int) ((word << 24) >>24);

}

int func2 (unsigned word)

{

return ((int) word << 24) >>24;

}

假设机器采用二进制补码表示带符号整数,无符号数采用逻辑移位,带符号整数采用算术移位。请填写下表,并说明函数func1 和func2的功能。

答:func1功能是逻辑移位,

func2功能是算术移位。

实验3

(1)

答:变量比负整数绝对值大很多,

(2)答:小数被截掉

(3)答:正数小数被截掉,负数变成一个很大的数

分析实验结果,在编程时,你有哪些问题需要注意?

答:在转换float unsigned int等变量时,要注意它们的转换方式。Int 转unsigned要看正负号

转float一般没事;unsigned 转int ,float要注意数的大小;float转unsigned int都会丢失精度,负数转unsigned 还会失去意义

相关文档
最新文档