C 溢出

来源:互联网 发布:有道翻译无法连接网络 编辑:程序博客网 时间:2024/05/02 08:17

输出结果是:

#include <stdio.h>int main(){        unsigned char i = 7;        int j=0;        for(;i>0;i-=3)        {                j++;        }        printf("%d\n", j);}

unsigned c har 8位数据位,范围0-255,
所以-2(11111110)时,溢出变成254;
同理-1(11111111)时,溢出变成255;
最后减到0时,不满足循环条件,for停止。
刚好173次。
7 4 1 -2 ==> 共4次
254 251 … 5 2 -1 ==> 共85次
255 252 … 6 3 ==> 共85-1=84次(因为3-3=0,不能进入循环了)
所以总共173次。(相减相除)

0 0
原创粉丝点击