没看primer之前不知道取余和取模还有不同。学习总结下。
“C++中,把负值赋给unsigned对象是完全合法的,其结果是该负数对该类型的取值个数求模后的值。所以,如果把-1赋给8位的unsigned char“ ,那么结果是255,因为255是-1对256求模后的 结果。”
csdn社区上对这个问题有讨论过http://topic.csdn.net/u/20101029/19/4ec1a01f-ae6d-4a7b-9aa7-8835f2204000.html
对于无符号整数,模运算可以转换为多个减运算,
对于有符号整数且为负,模运算可以转换为加运算。
即取模运算对于负数应加上被除数的整数倍,使得结果大于或等于0之后再进行运算。如-1+256=255然后255%256=255.
http://blog.csdn.net/huasion/article/details/6855900这篇文章讲的也挺好的,不累述。
我们一般说的用的都是取余。