码迷,mamicode.com
首页 > 其他好文 > 详细

有符号和无符号整型数据溢出问题

时间:2018-03-11 20:55:43      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:符号整型   符号   .net   gravity   条件   整型   分析   gpo   相同   

无符号数都有“unsigned”标志,如果没有“unsigned”标志,则程序默认该数为有符号数“signed”。
无符号数可正可负 ,有符号数一定为正。由于有符号与无符号数所占用的字节数相同,因此无符号数所允许的最大值比有符号数的大一倍。如 ,无符号短整型数的数值范围是0到65535,而有符号短整型数的范围是-32768到32767.

1.无符号整数溢出问题:

int main()  
{  
     unsigned short int b=0;  
     b=65535;  
     cout<<"b before is:"<<b<<endl;  
     cout<<"b after is:"<<++b<<endl;  
    return 0;  
}  

 

结果:

技术分享图片

分析:b为最大值65535时,自增1后,满足溢出条件 ,此时b值为0.

 

1.有符号整数溢出问题:

int main()  
{  
     short int a=0;  
         a=32767;  
     cout<<"a before is:"<<a<<endl;  
     cout<<"a after is:"<<++a<<endl;  
     cout<<"a after is:"<<++a<<endl;  
    return 0;  
}  

 

结果:

 

技术分享图片

分析:a为最大值32767时,自增1后,满足溢出条件 ,此时b值为-32768.

有符号和无符号整型数据溢出问题

标签:符号整型   符号   .net   gravity   条件   整型   分析   gpo   相同   

原文地址:https://www.cnblogs.com/Ph-one/p/8545323.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!