概述
一、溢出的本质
溢出的本质是计算机无法存放过大或者过小的数据。
假设一个计算机CPU是4位的,那么每一位或者为0,或者为1,根据排列组合,这四位最多共有2*2*2*2=16种可能的组合方式,也就是说这台计算机只能最多表示16个数字。
以计算机中的无符号整数为例,那么4位CPU的计算机表示出来的就只有0~15这16个数字。如果你拿两个数,一个为11,另一个为5,做加法的话,计算结果会显示为0而不是16。
因为11加4已经等于15了,再加1它已经无法表示,所以又回到了0处,这种情况就属于上溢。反之,2-3的话,得到的结果为15,因为2-2已经为0,再减的话就转回到了15,这属于下溢。
总之一句话,溢出反应了计算机处理能力的上限和下限,太大的数和太小的数均无法直接呈现出来。
二、探讨有符号数与无符号数上溢出下溢出的问题
1,有符号数的溢出
#include<void.h> Void main() { int i= 2147483647; printf(“%d,%d”,i.i+1);
最后
以上就是高高巨人为你收集整理的二进制溢出的全部内容,希望文章能够帮你解决二进制溢出所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复