zoukankan      html  css  js  c++  java
  • 变量在赋值之后如果越界了会怎样?

    看到一个题目:

    unsigned char i,j;

     for(i=0,j=2;i!=j;i+=5,j+=7)
     {
       printf("i=%d , j=%d ",i,j);
     }

    unsigned char范围是0-255,在此范围内一轮循环两个值i与j不可能相等,但是在后面可能会相同,但是比如 i=253,这时候i+5=258>255此时i到底是多少?

    运行后知道:j=250 ,j=1;  

                     j=253,   j=4;

                     j=254,   j=5;

                     i=254,   i=3;

                     i=255,   i=4;

    一目了然了,注意255完了之后有个0.

    稍作修改,把unsigned char 改为char,char范围:-128 ~ 127

    运行结果:

                     j=121,   j=-128;

                     j=-2,     j=5;

                     j=124,   j=-125;

                     j=-6,     j=1;

                     i=125,   i=-126;

                     i=-1,     i=4;

                     i=124,   i=-127;

                     i=-2,      i=3;

    嗯。因为位运算的结果,暂时先记这么多吧

                    

  • 相关阅读:
    机器学习概要
    Latex公式压缩
    MATLAB多项式运算
    利用MathType为公式编号并引用
    MATLAB符号对象与符号运算
    MATLAB矩阵运算
    MATLAB绘制函数图
    MATLAB程序控制语句
    MATLAB关系运算符和逻辑运算符
    Raspberry pi之wifi设置-3
  • 原文地址:https://www.cnblogs.com/wwjdwy/p/3387399.html
Copyright © 2011-2022 走看看