鱼C论坛

 找回密码
 立即注册
查看: 1292|回复: 9

[已解决]运算符

[复制链接]
发表于 2018-8-17 21:21:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

求解答案

求解答案
最佳答案
2018-8-17 21:27:02
  1. x+=--x%--y
复制代码

先把它分步
  1. x,+=,--x,%,--y。
复制代码

因为--x、--y是前自减,所以
  1. x,+=,(x-=1),%,(y-=1)
复制代码

相当于(注意!这里的x等于16)
  1. x+=16%4
复制代码


  1. x+=0
复制代码

相当于
  1. 16+0
复制代码

得到16。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-8-17 21:22:08 | 显示全部楼层
想知道   怎么算的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 21:27:02 | 显示全部楼层    本楼为最佳答案   
  1. x+=--x%--y
复制代码

先把它分步
  1. x,+=,--x,%,--y。
复制代码

因为--x、--y是前自减,所以
  1. x,+=,(x-=1),%,(y-=1)
复制代码

相当于(注意!这里的x等于16)
  1. x+=16%4
复制代码


  1. x+=0
复制代码

相当于
  1. 16+0
复制代码

得到16。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 21:36:38 | 显示全部楼层
本帖最后由 这是一个坏人 于 2018-8-17 21:50 编辑
无符号整形 发表于 2018-8-17 21:27
先把它分步

因为--x、--y是前自减,所以


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-17 21:44:22 | 显示全部楼层
无符号整形 发表于 2018-8-17 21:27
先把它分步

因为--x、--y是前自减,所以

这是考研真题
答案是17
0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 21:50:27 | 显示全部楼层
这是一个坏人 发表于 2018-8-17 21:44
这是考研真题
答案是17
0.0

题目错的
test1234.JPG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 23:37:02 | 显示全部楼层
这是一个坏人 发表于 2018-8-17 21:44
这是考研真题
答案是17
0.0

自增一般不会在同一行实现。这种操作目前还没有统一,所以不同的编译器会给出不同的答案,不要太在意~
这题如果按照优先顺序的话,应该是 16
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 23:37:25 | 显示全部楼层
VC 答案是16
通过反汇编查看是这样执行的
1.x=x-1
2.y=y-1
3.x%y   其实是16%4
4.x=x+(16%4)

详细步骤
00401036   mov         eax,dword ptr [ebp-4]
00401039   sub         eax,1
0040103C   mov         dword ptr [ebp-4],eax
0040103F   mov         ecx,dword ptr [ebp-8]
00401042   sub         ecx,1
00401045   mov         dword ptr [ebp-8],ecx
00401048   mov         eax,dword ptr [ebp-4]
0040104B   cdq
0040104C   idiv        eax,dword ptr [ebp-8]
0040104F   mov         eax,dword ptr [ebp-4]
00401052   add         eax,edx
00401054   mov         dword ptr [ebp-4],eax

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-17 23:43:43 | 显示全部楼层
如果是x+=--x % --y的话,编译器给出的答案是16
但是如果改成x=x+--x%--y 那就是17
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-8-18 08:01:48 | 显示全部楼层
claws0n 发表于 2018-8-17 23:37
自增一般不会在同一行实现。这种操作目前还没有统一,所以不同的编译器会给出不同的答案,不要太在意~
...

嗯 ~谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-20 20:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表