游戏开发论坛

 找回密码
 立即注册
搜索
楼主: 25894670

来个小题目,算是抛砖引玉吧,希望大家也多出点这样的

[复制链接]

0

主题

24

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2009-4-17 07:29:00 | 显示全部楼层

Re: Re:来个小题目,算是抛砖引玉吧,希望大家也多出点

音乐信徒: Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样的题目

无法理解4楼表达的是什么意思

算一下不就理解了

3

主题

263

帖子

267

积分

中级会员

Rank: 3Rank: 3

积分
267
发表于 2009-4-17 17:24:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

路过,看看热闹.

5

主题

20

帖子

24

积分

注册会员

Rank: 2

积分
24
QQ
发表于 2009-4-23 17:56:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

这个在以前一本书上就提到过。当时的作者也就是我的观点 - -
其实追究这点是没有意义的,多一个变量也不会影响到效率。少一个变量反而让程序的易读性降低。建议看看C++高质量编程。

大家多交流 - -  我的BLOG: http://blog.csdn.net/masefee 欢迎来交流 - -

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-5-9 12:17:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

有点太简单了吧

3

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2009-6-3 13:40:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

真强,学习了.XOR的意义深远.

1

主题

6

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2009-7-30 00:05:00 | 显示全部楼层

Re: 来个小题目,算是抛砖引玉吧,希望大家也多出点这样

int a = 3, b = 4;
a = a ^ b; 0011 ^ 0100 = 0111  
b = a ^ b; 0111 ^ 0100 = 0011  = 3
a = a ^ b; 0111 ^ 0011 = 0100  = 4
a = 4, b = 3;

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-8-10 00:03:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

void Exchange(int a, int b)
{
  _asm
  {
    push a
    push b
    pop a
    pop b
  }
}

4

主题

13

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2009-8-14 14:26:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

考虑溢出的话 4楼的答案最简单
但是如果是小数值运算(只要小于int型最大值的一半)
这样的运算在不同的编译器下有不同  因为编译器的补位规则不一样

a=(a<<(sizeof(int)/2))&b;
b=a>>(sizeof(int)/2);
a=(a<<(sizeof(int)/2)>>(sizeof(int)/2);

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-8-27 07:13:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

matrix67大牛教育我们,如果 # 和 @ 互为逆运算,且 # 满足交换律,则可这样交换两个变量的值:

a = a # b;
b = a @ b;
a = a @ b;

另外:

a ^= b ^= a ^= b;

看了下汇编码(VC9 为例,Release 和 Debug),MS 还是使用临时变量的代码产生的指令数少。

14

主题

251

帖子

251

积分

中级会员

Rank: 3Rank: 3

积分
251
发表于 2009-9-22 18:17:00 | 显示全部楼层

Re:来个小题目,算是抛砖引玉吧,希望大家也多出点这样

是个数学题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-20 13:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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