首先,说一个整形的赋值问题,对于unsigned类型,比如8位的unsigned char,其取值范围从0-255(包括255),如果赋给超出这个范围的值,编译器就会取该值对256求模后的值。
其次,关于求模和取余,如果操作数都是正整数,则一样,若有负数,则另当别论。
对于无符号整数,模运算可以转换为多个减运算(例:336对256求模,336%256)
对于有符号整数且为负,模运算可以转换为加运算。
例如:把-1赋给8位的unsigned char,那么结果是255,运算过程如下:
取模运算对于负数应加上被除数的整数倍,使得结果大于或等于0之后再进行运算。如-1+256=255然后255%256=255.