运算符
想知道 怎么算的 x+=--x%--y先把它分步
x,+=,--x,%,--y。
因为--x、--y是前自减,所以
x,+=,(x-=1),%,(y-=1)
相当于(注意!这里的x等于16)
x+=16%4
得
x+=0
相当于
16+0
得到16。 本帖最后由 这是一个坏人 于 2018-8-17 21:50 编辑
无符号整形 发表于 2018-8-17 21:27
先把它分步
因为--x、--y是前自减,所以
无符号整形 发表于 2018-8-17 21:27
先把它分步
因为--x、--y是前自减,所以
这是考研真题
答案是17
0.0 这是一个坏人 发表于 2018-8-17 21:44
这是考研真题
答案是17
0.0
题目错的
这是一个坏人 发表于 2018-8-17 21:44
这是考研真题
答案是17
0.0
自增一般不会在同一行实现。这种操作目前还没有统一,所以不同的编译器会给出不同的答案,不要太在意~
这题如果按照优先顺序的话,应该是 16 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
00401039 sub eax,1
0040103C mov dword ptr ,eax
0040103F mov ecx,dword ptr
00401042 sub ecx,1
00401045 mov dword ptr ,ecx
00401048 mov eax,dword ptr
0040104B cdq
0040104C idiv eax,dword ptr
0040104F mov eax,dword ptr
00401052 add eax,edx
00401054 mov dword ptr ,eax
如果是x+=--x % --y的话,编译器给出的答案是16
但是如果改成x=x+--x%--y 那就是17 claws0n 发表于 2018-8-17 23:37
自增一般不会在同一行实现。这种操作目前还没有统一,所以不同的编译器会给出不同的答案,不要太在意~
...
嗯 ~谢谢
页:
[1]