当前位置:首页 > 嵌入式培训 > 嵌入式学习 > 讲师博文 > 分析数据越界过程

分析数据越界过程 时间:2017-10-26      来源:未知

以16位int为例说明。2字节

首先你要明白,在内存中存放的数都是补码。

且数值范围已定-32768~32767。 

 

小的数是-32768,原码是1111,1111,1111,1111,反码1000,0000,0000,0000,补码是1000,0000,0000,0000。

-1的补码是1111,1111,1111,1111(原码1000,0000,0000,0001,反码1111,1111,1110)

 

越界过程:

-32768-1=[-32768]+[-1]=1000,0000,0000,0000+1111,1111,1111,1111=0111,1111,1111,1111

=32767

//常规得到1,0111,1111,1111,1111,但是数值范围规定了数值的大值,进位超出范围就忽略了进位值。

 

大值是32767,补码是0111,1111,1111,1111。1的补码是0000,0000,0000,0001

 

越界过程:

32767+1=[32768]+[1] =0111,1111,1111,1111+0000,0000,0000,0001=1000,0000,0000,0000

=-32768

上一篇:Qt 5.6以上版本的MJPG-STREAMER视频播放实现

下一篇:epoll的使用

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部