zoukankan      html  css  js  c++  java
  • outof_size

    //date 2013 4 1
    //designer pengxiaoen
    //function : when the + or - out of their size ,the value is.............
    //--------------------------------------------------------------------------------

    #include "stdio.h"
    int main ()
    {
    int i,j;
    char positive_number,negative_number; // 8 bit

    positive_number =0;
    negative_number =0;

    for (i=0;i<135;i++)
    {
    if (i>125) printf ("positive_number = %d\n",positive_number);
    positive_number +=1;
    }


    printf ("\n\n");


    for (j=0;j>-135;j--)
    {
    if (j<-125) printf ("negative_number = %d\n",negative_number);
    negative_number -=1;
    }

    system ("pause");

    }

    value:

    对于positive_number 127 = 0111 1111 B 

      0111 1111 B  + 1 = 1000 0000 当成了补码就成了 -128

         1000 0000 + 1 = 1000 0001 补 = -127 依次类推

    对于negative_number  -128 = 1000 0000 B 

      1000 0000 - 1 = 0111 1111 = 127

      依次类推 

    小插曲:在定义时不小心将j 定义成了unsigned int 类型。第二个for 就不执行了。注意我说的是

    for (j=0;j>-135;j--)
    {                                        printf(“node/n”);
    if (j<-125) printf ("negative_number = %d\n",negative_number);
    negative_number -=1; 
    }

    中的 printf(“node/n”); 这条语句一次都没有执行。

    因为j 是unsigned int 类型,-135 补码形式存储后,这个二进制数连同符号位一起当成了一个unsigned int,所以纯粹以二级制看 [0]原码 < [-135]补码,j>-135条件就不成立 了,以至于这个for 语句里面的子语句一条都没有执行。

  • 相关阅读:
    ​综述 | SLAM回环检测方法
    从零开始一起学习SLAM | 用四元数插值来对齐IMU和图像帧
    2019-2020年值得关注的9个AR发展趋势
    计算机视觉方向简介 | 图像拼接
    “人工智能资源对接平台”发布,找人、找技术不再难!
    解决上不了网的特例
    机械键盘简介
    笔记本升级方案
    CSS构造表单
    CSS构造表格
  • 原文地址:https://www.cnblogs.com/sepeng/p/2994059.html
Copyright © 2011-2022 走看看