遇到一个考试题目:
设x=1,y=2,z=3,则表达式y+=z- -/++x的值是()
A. 3 B. 3.5 C. 4 D. 5

一开始毫无头绪,后来看到答案明白了.

首先应是这样的:y+=(z- -/++x)把y+=后面的看成一个整体
然后 再考虑 z- -/++x 就是(z- -)/(++x)
z- - 先返回z 然后做自减运算
++x 先做自增运算 然后返回x
即:
y+=(3/2)
此时,z=2 x=2
3/2 都为int类型 故结果为1
即y+=1
y=3
另外x的值为2,z的值也为2

C语言运行结果:
表达式的值为3(即y的值)

从翻译的MIPS汇编语言我们可以发现

y+=z- -/++x

mipsasm
main:
addiu $sp,$sp,-32
sw $fp,28($sp)
move $fp,$sp
li $2,1 # 0x1 赋值x=1
sw $2,8($fp)
li $2,2 # 0x2 赋值y=2
sw $2,12($fp)
li $2,3 # 0x3 赋值z=3
sw $2,16($fp)
lw $2,16($fp) #取z=3的值给$2 , z- - 第一步返回z值
nop
addiu $3,$2,-1 #z- - 第二步 自减
sw $3,16($fp)
lw $3,8($fp)
nop
addiu $3,$3,1 #x++运算 $3自增
sw $3,8($fp)
lw $3,8($fp)
nop
bne $3,$0,1f
div $0,$2,$3 #除法运算$3=$2/$3
break 7
1:
mfhi $2
mflo $3
lw $2,12($fp) #读取y值
nop
addu $2,$2,$3 #y+=$3 至此y+=z--/++x运算结束
sw $2,12($fp) #回写y值
move $2,$0
move $sp,$fp
lw $fp,28($sp)
addiu $sp,$sp,32
j $31
nop

y+=z--/++x 的讨论相关推荐

  1. python x y z 1_Python下的数值列表 - range(x,y,z)函数

    本文讨论Python下的数值列表 - range(x,y,z)函数的应用,并分析其计数过程. 本文节选自作者的<Python编程基础及应用>视频教程.Python编程基础及应用_哔哩哔哩 ...

  2. Java基础算法题(18):两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三

    查看所有50道基础算法题请看: Java的50道基础算法题 两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c ...

  3. PCL:自定义创建带颜色的点云保存后rgb是一个很大的数,由x y z rgb解包为x y z r g b

    由于实验需要自己需要从3D相机中读取数据并保存为pcd格式, 下面是一部分读取并保存的代码,以及最后保存结果,但是在保存为pcd的时候发现是这个样子:  (如上代码为PCD文件中的头文件,TYPE中的 ...

  4. x³+y³+z³=3第三组整数解是多少,这个58年难题被40万台电脑算出来了

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 你在看到标题的时候,一定会想: 这个问题我知道答案:x.y.z都等于1. 如果再多算几步,你还能发现4.4.-5也是一组整数解. 注意审题 ...

  5. hdu4282 x^z+y^z+x*y*z=k 解的个数

    题意:      x^z + y^z + x*y*z = k; (x < y ,z > 1),给你一个k问有多少组解. 思路:        暴力枚举z,y,然后二分查找x.注意一点最好用 ...

  6. windows下编译jsoncpp 1.y.z

    百度上搜索"windows 编译 jsoncpp"都是针对jsoncpp 0.y.z版本的(大多是0.5.0或者0.10.x)为主,对1.y.z的几乎没有.而刚好我涉及到的应用(百 ...

  7. Help:立体图绘制以及根据X,Y,Z三坐标值,在图上描点

    BS结构项目有个需求,需要绘制如下的立体图: 之后,还需要在上图,根据x,y,z描点 请教大家,可有什么好办法,什么控件实现 先谢了 转载于:https://www.cnblogs.com/Bryan ...

  8. c语言程序设计多数求最大值,C语言编程问题存在三个整数,使x²+y²+z²=625,求x+y+z的最大值。这是大一C语言实验书的习题,请不要用过于复杂的算法语句...

    设计:625的方根是25,所以x,y,z最大值是25(不考虑负数情况) 设定一个数组变量max[4], max[0]保存x+y+z的最大值,max[1]-max[3]保存此最大数的x,y,z值. 程序 ...

  9. JAVA输出x和y和z_JAVA实例:输入三个整数x,y,z,请把这三个数由小到大输出-吾爱编程网...

    今天为大家分享一个java经典实例输入三个整数x,y,z,请把这三个数由小到大输出,相信很多初学者都会学到这道题目,接下来吾爱编程为大家介绍一下程序的相关写法,有需要的小伙伴可以参考一下: 1.题目: ...

  10. matlab基本矩阵运算,matlab的矩阵基本运算问题已知A=[a,b,c;d,e,f;h,I,j],B=[l,m,n;x,y,z;q,o,p]...

    共回答了22个问题采纳率:95.5% clear all;clc; syms a b c d e f h l j m n x y z o p q A=[a,b,c;d,e,f;h,l,j]; B=[l ...

最新文章

  1. ARM再次表态:不会向华为断供芯片技术
  2. 我是如何使用laydate日历插件更换掉老项目不好用的日历插件datepicker的
  3. mysql常用命令整理
  4. 开源 免费 java CMS - FreeCMS1.3-数据对象-report
  5. 在Vim中将DOS行尾转换为Linux行尾
  6. Spark将数据写入Mysql
  7. 七月算法机器学习 7 工作流程与模型调优 Kaggle案例泰坦尼克号问题
  8. 湖南省长沙市谷歌高清卫星地图下载
  9. 超简单的HIDPI设置
  10. 60天使用百词斩背单词的感想
  11. 计算机学院陈冠华,生命科学学院2020年研究生学业奖学金(老生)获奖名单公示...
  12. 一键还原涂鸦图片_涂鸦的图片可以复原吗
  13. H5外部浏览器唤起微信分享
  14. 2019年了时间过得好快啊!我的小感慨
  15. zotero如何用markdown记笔记
  16. 安排几款实用的内网穿透工具+教程
  17. 淘宝卖家店铺订单API接口同步方案
  18. Kali安装GVM(openvas)教程并更改用户密码
  19. 微信小程序java美食厨房食谱大全分享系统
  20. Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践

热门文章

  1. 定时器计数器中央双向对齐模式1/2/3
  2. docker镜像管理基础
  3. 王佩丰Excel24讲_第4讲:排序与筛选
  4. FASTQ质控软件FASTP下载和运行
  5. 201671010426 孙锦喆 实验四附加实验
  6. 几何/极星“出师不利”,极氪“出位”,吉利“急攻”智能电动
  7. 计算机应用基础前言,计算机应用基础__前言
  8. 对学计算机学生礼仪,做一名内外兼修的优秀大学生——记计算机科学学院大学生形象包装与职场礼仪讲座...
  9. 2014年北邮网研院复试上机题目
  10. Pikachu靶场通关笔记--Sql Inject(SQL注入)