[求助]关于求模,网上看了些,还是不太理解
unsigned a,b;a=-1;
b=256;
这里如果打印a%b,结果是255;如果把前面定义改成有符号整型,打印结果就是-1;
有符号情况下的取余运算好理解,无符号情况下为什么会变成255呢?
-2%256就是254,依次类推
期盼解答,谢谢
2007-07-26 14:04
说错了,如楼下所说,先搞清楚a的值。
负数越界,将该数对类型个数求模的值赋到a。
a =(2^32-1)
[此贴子已经被作者于2007-7-26 18:59:17编辑过]

2007-07-26 16:06
2007-07-26 18:25
unsigned a,b...
也就是unsigned int a,b...
win32环境下是4个字节(32bits)...
-1用十六进制来看就是FFFFFFFF...
最高位是符号位...
但是你定义的是unsigned无符号, 所以最高位还是有效位...
所以其实 a=4294967295...

2007-07-26 19:08
2007-07-26 22:06
两位版主回复很详细,这里环境很好,谢谢你们:)
最近把自己当成一个什么都不会的人开始重看c++ primer,所以有时候会问些比较白痴的问题,属于那种一时转到死胡同里想不开的类型,可能明天过来一看自己都会笑。呵呵,还是谢谢
2007-07-26 22:09
2007-07-27 19:15
2007-07-27 22:41
取模运算....modulus...
说对了, 就是取余...
A % B = A - int(A/B) B!=0
返回余数...

2007-07-28 20:38
2007-07-28 21:03