当前位置: 首页 > news >正文

计算机组成原理-408考点-数的表示

常见题型:C语言中的有符号数和无符号数的表示。

【例1】有如下C语言程序段: short si=-32767;unsigned short usi=si;执行上述两条语句后,usi的值为___。short和unsigned short均使用16位二进制数表示。

【分析】考点:同一个二进制数,被视为无符号数和有符号数的补码时,其真值是多少?

以八位二进制数的表示为例,考虑无符号和有符号数的补码的真值:

无符号数X1有符号数的补码X2
0000 0000 00
..................
0111 1111127+127
1000 0000128-128
..................
1111 1111255-1

通过观察可以看到,从1000 0000开始,同一个八位二进制数, X1+|X2|始终等于256,也就是2^8。所以,答案应该为2^{16}-\left | -32767 \right |=32769

【例2】一个C语言程序在一台32位机上运行。程序中定义了三个变量x, y和z,其中x和z为int型,y为short型。当x=127,y= -9时,执行赋值语句z=x+y后,x,y和z的值分别是(   )。

A. x=0000007FH, y=FFF9H, z=00000076H

B. x=0000007FH, y=FFF9H, z=FFFF0076H

C. x=0000007FH, y=FFF7H, z=FFFF0076H

D. x=0000007FH, y=FFF7H,z=00000076H

【分析】 考点:混合类型变量的加法中会涉及到强制转换类型以及符号扩展。

(1)混合类型变量:z=x+y, x为int,y为short

(2)强制转换类型:y要转换为int。所以会涉及到符号扩展。y是负数,符号扩展后,高位补符号位1。根据2's complement的思想,故y的补码应该是7结尾的,故淘汰A和B。

(3)由于z=x+y=136, 为正数,故只能选D。

【例3】假定变量i、f和d的数据类型分别为int、float和double。 int用补码表示,float和 double分别用IEEE 754单精度和双精度浮点数格式表示。已知i=785、f= 1.5678E3、d=1.5E100,若在32位机器中执行下列关系表达式,则结果为“真”的是()。
I. i==(int)(float)i
II. f== (float)(int)f
III. f==(float)(double)f
IV. (d+f)-d==f

A. 仅I和II

B. 仅I和III

C. 仅II和III

D. 仅III和IV

【分析】考点:IEEE754下浮点数的范围。

1. 选项I涉及到int→float→int:根据IEEE754下float的范围知道,当原int数在-2^24与2^24之间时,两次转换后结果不变。

2. 选项II涉及到float→int→float:若原float值的小数部分为0(即纯整数)且在int范围内,则
转换后值不变。 若原float值有非零小数部分,则值会改变。如果float的值超过INT_MAX或小于INT_MIN,转换为int会导致溢出。

3. 选项III涉及到float→double→float:(1)float是32位单精度浮点数,包含1位符号位、8位指数位和23位尾数位。转换为double(64位双精度,1位符号、11位指数、52位尾数)时,数值会被精确扩展:符号位不变,指数部分通过调整偏移量(从127到1023)扩展为11位,尾数补零至52位。(2)再转回float时,若原double值由float扩展而来,其指数和尾数均在float的范围内。尾数部分截断后23位与原float相同,指数也通过调整偏移量(从1023到127)正确还原。

4. 选项IV:等式左侧计算出来的结果是double,等式右侧计算出来的结果是float,不相等。

故,只有I和III是正确的。


http://www.mrgr.cn/news/100249.html

相关文章:

  • 正则表达式三剑客之——awk命令
  • 大内存生产环境tomcat-jvm配置实践
  • RocketMQ 主题与队列的协同作用解析(既然队列存储在不同的集群中,那要主题有什么用呢?)---管理命令、配置安装(主题、消息、队列与 Broker 的关系解析)
  • 张 LLM提示词拓展16中方式,提示词
  • 14-DevOps-快速部署Kubernetes
  • 【2025 最新前沿 MCP 教程 01】模型上下文协议:AI 领域的 USB-C
  • YOLO12架构优化——引入多维协作注意力机制(MCAM)抑制背景干扰,强化多尺度与小目标检测性能
  • 【数据可视化-25】时尚零售销售数据集的机器学习可视化分析
  • 【深度强化学习 DRL 快速实践】异步优势演员评论员算法 (A3C)
  • MySQL数据库(基础篇)
  • 【计算机视觉】CV实战项目 - 深入解析基于HOG+SVM的行人检测系统:Pedestrian Detection
  • VScode远程连接服务器(免密登录)
  • 【数据可视化-24】巧克力销售数据的多维度可视化分析
  • Mysql日志undo redo binlog与更新一条数据的执行过程详解
  • 【深度强化学习 DRL 快速实践】Value-based 方法总结
  • RefFormer论文精读
  • 使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
  • 蓝耘平台介绍:算力赋能AI创新的智算云平台
  • (三) Trae 调试C++ 基本概念
  • 开发并发布一个属于自己的包(npm)