f********9 发帖数: 65 | 1 好象是不用附加变量,交换两个变量的值.哪位知道答案是什么? | P********e 发帖数: 2610 | 2 a ^= b;
b ^= a;
a ^= b;
【在 f********9 的大作中提到】 : 好象是不用附加变量,交换两个变量的值.哪位知道答案是什么?
| f********9 发帖数: 65 | | p**********g 发帖数: 9558 | 4 Another way
a = a+b;
b = a-b;
a = a-b; | r****y 发帖数: 26819 | 5 有溢出啊
【在 p**********g 的大作中提到】 : Another way : a = a+b; : b = a-b; : a = a-b;
| p**********g 发帖数: 9558 | 6 呵呵,谢谢
【在 r****y 的大作中提到】 : 有溢出啊
| t****t 发帖数: 6806 | 7 好好想想,整数溢出不要紧的
【在 r****y 的大作中提到】 : 有溢出啊
| p**********g 发帖数: 9558 | 8 0,1,2,...127,-128,-127,...-1,0,...
(+1)
char i = -128;
char j = -1;
i = i+j = -128 + -1 = 127;
j = i-j = 127 - -1 = -128;
i = i-j = 127 - -128 = -1;
0,1,2,...255,0,1,2,3,...255,...
(+1)
unsigned char i = 255;
unsigned char j = 1;
i = i+j = 255+1 = 0;
i = i-j = 0-1 = 255;
j = i-j = 0-255= 1; | c*******u 发帖数: 1269 | 9 change it to
a=b-a;
b=b-a;
a=a+b;
【在 r****y 的大作中提到】 : 有溢出啊
| f*******y 发帖数: 988 | 10 你到说说为啥这个就没溢出了?
【在 c*******u 的大作中提到】 : change it to : a=b-a; : b=b-a; : a=a+b;
| c*******u 发帖数: 1269 | 11 我的想法是如果两个数一正一负加之,同正同负减之,可以避免溢出。不过上面有人说
整数溢出没关系,我就不知道了。
【在 f*******y 的大作中提到】 : 你到说说为啥这个就没溢出了?
|
|