计算机系统原理13015【数据的表示与运算】

本文详细探讨了数据在计算机中的表示方式,包括二进制小数、整数的原码、补码和移码表示,以及浮点数的IEEE 754标准。文章通过举例和解题的方式,讲解了不同数据类型的转换、运算和范围,涉及无符号整数、带符号整数、浮点数的加减乘除和溢出条件。此外,还讨论了在不同编程标准下(如ISO C90和C99)整数比较的处理差异,以及在实际编程中需要注意的问题,如数据类型转换可能导致的异常和精度问题。
摘要由CSDN通过智能技术生成

1. 假定机器数为8位(1位符号,7位数值),写出下列各二进制小数的原码表示。

+0.1001,–0.1001,+1.0,–1.0,+0.010100,–0.010100,+0,–0

参考答案:

题中各二进制数的原码表示如题1表所示。

题1表 小数的原码表示

数值

原码

+0.1001

0.1001000

–0.1001

1.1001000

+1.0

溢出

–1.0

溢出

+0.010100

0.0101000

–0.010100

1.0101000

+0.0

0.0000000

–0.0

1.0000000

  1. 假定机器数为8位(1位符号,7位数值),写出下列各二进制整数的补码和移码表示。

+1001,–1001,+1,–1,+10100,–10100,+0,–0

参考答案:

    题中各二进制数的补码和移码表示如题2表所示。

题2表 整数的补码和移码表示

数值

补码

移码

(偏置常数=1 0000000时)

移码

(偏置常数=0 1111111时)

+1001

0 0001001

1 0001001

1 0001000

–1001

1 1110111

0 1110111

0 1110110

+1

0 0000001

1 0000001

1 0000000

–1

1 1111111

0 1111111

0 1111110

+10100

0 0010100

1 0010100

1 0010011

–10100

1 1101100

0 1101100

0 1101011

+0

0 0000000

1 0000000

0 1111111

–0

0 0000000

1 0000000

0 1111111

3. 已知 [x]补,求x

(1)[x]补=1110 0111           (2)[x]补=1000 0000

(3)[x]补=0101 0010          (4)[x]补=1101 0011

参考答案:

(1)x=-0011001=-25      (2)x=-10000000=-128

(3)x=+1010010=82 (4)x=-0101101=-45

4.假定32位字长的机器中带符号整数用补码表示,浮点数用IEEE 754标准表示,寄存器R1和R2的内容分别为R1:0060 0000H,R2:8080 0000H。不同指令对寄存器进行不同的操作,因而,不同指令执行时寄存器内容对应的真值不同。假定执行下列运算指令时,操作数为寄存器R1和R2的内容,则R1和R2中操作数的真值分别为多少?

  1. 无符号数加法指令
  2. 带符号整数乘法指令
  3. 单精度浮点数减法指令

参考答案:

根据题意,寄存器R1的内容为0000 0000 0110 0000 0000 0000 0000 0000,寄存器R2的内容为1000 0000 1000 0000 0000 0000 0000 0000。

(1)对于无符号数加法指令,R1和R2的内容均被解释成无符号整数,即R1的真值为60000H=222+221=6 291 456,R2的真值为80800000H=231+223=2 155 822 256。

(2)对于带符号整数乘法指令,R1和R2的内容均被解释为补码整数,由最高位可知, R1为正数;R2为负数。R1的真值为+60000H=222+221=6 291 456;R2的真值为– 111 1111 1000 0000 0000 0000 0000 0000B = –(230+229+228+227+226+225+224+223) = –(231–223)= –2 139 095 040。

(3)对于单精度浮点数减法指令,R1和R2的内容均为IEEE 754单精度浮点数表示。

由R1的内容可知,其符号位为0, 表示正数, 阶码为0000 0000, 尾数部分为110 0000 0000 0000 0000 0000,因为阶码为全0、尾数为非0数,故R1是非规格化浮点数,其指数为–126,尾数为0.11B, 故R1表示的真值为–0.11B×2-126 = –0.75×2-126。

由R2的内容可知,其符号位为1, 表示负数,阶码为0000 0001,尾数部分为000 0000 0000 0000 0000 0000,因而R1为规格化浮点数,其指数为1–127 = –126,尾数为-1.0B,故R2表示的真值为-1.0×2-126 =-2-126。

5. 假定机器M的字长为32位,用补码表示带符号整数。题5表中第一列给出了在机器M上执行的C语言程序中的关系表达式。分别考虑在ISO C90和C99标准下,参照已有表栏内容完成表中后三栏内容的填写,并对其中的关系表达式“2147483647 < 2147483648”的结果进行说明。

题5表

关系表达式

运算类型

结果

说明

0 == 0U

–1 < 0

–1 < 0U

2147483647 > –2147483647 – 1

2147483647U > –2147483647 – 1

2147483647 < 2147483648

–1 > –2

(unsigned) –1 > –2

无符号整数

带符号整数

0

1

11…1B (232–1) > 00…0B(0)

011…1B (231–1) > 100…0B (–231)

参考答案:

在ISO C90标准下的执行结果如下表所示。

序号

关系表达式

运算类型

结果

说明

1

0 == 0U

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值