关于c++中的取模运算

2019-04-14 20:35发布

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