T9的空间

You will never walk alone!

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  69 随笔 :: 0 文章 :: 28 评论 :: 0 Trackbacks
回家无聊看了会儿书,于是发现自己好大意,惊恐了一会儿,自己学习C语言的时候没注意,或者是忘了,细细说来:
例如:
对于int型数据范围是-2^32~~2^32-1;也就是-2147483648~~2147483647,那么设a=-2147483648,b=2147483647,则a-1,b+1的结果是多少?
我没在意,想想越界了,也就没多管,而事实上呈现一种循环结构
#include <iostream>
using namespace std;

int main()
{
    
int a=2147483647, b=-2147483648;
    
//a表示int型能表示的最大的整数,b表示能表示的最小的整数
    cout<<"转折现象modular"<<endl;
    cout
<<a+1<<endl;
    cout
<<b-1<<endl;
    
//既可以将int型数据看成一个循环的圆圈
    return 0;
}

/*******************

转折现象modular
-2147483648
2147483647
Press any key to continue

*****************
*/

其原因很好解释,用char型可以简单证明,要注意的是超过8位的进位会被舍去
在这里我们知道计算机内数据均用补码表示。
例如127是这样的0111 1111
127+1==》1000 0000即为-128


posted on 2009-02-14 16:19 Torres 阅读(178) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理