首先明确char 的范围是0~255
例如:char c = -1; 可见-1超出了char的范围,那么我们应该对它进行什么操作呢?
解决办法:将-1对256进行取余运算,然后这里又遇到一个问题,含有负数的取余运算该怎么做。
首先要知道,取余运算的原理,a%d: a=q*d+r |r|<|d| q是商
7%3: 情况一:7=3*2+1 情况二:7=3*3+(-2) 正确的是一
-1%256: 情况一:-1=256*(-1)+(255) 情况二:-1=256*0+(-1) 正确的是一
可见所有的计算都有两种情况,怎么选择呢?
同号时:选择使商小的那个
异号时:选择使商大的那个
注意不同语言结果可能不同
参考文章: