溢出就是:当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出。
例如,定义的数据类型只能存储8位,算着算着这个值变成了9位,就是溢出了。
至于对二进制的影响,如果是有符号数,高位是符号位,溢出可能会改变结果的符号了。也可能影响数据的精度。
扩展资料:
数据类型超过了计算机字长的界限就会出现数据溢出的情况。导致内存溢出问题的原因有很多,比如:
1、使用非类型安全(non-type-safe)的语言如 C/C++ 等。
2、以不可靠的方式存取或者复制内存缓冲区。
3、编译器设置的内存缓冲区太靠近关键数据结构。
内存溢出问题是 C 语言或者 C++ 语言所固有的缺陷,它们既不检查数组边界,又不检查类型可靠性(type-safety)。
众所周知,用 C/C++ 语言开发的程序由于目标代码非常接近机器内核,因而能够直接访问内存和寄存器,这种特性大大提升了 C/C++ 语言代码的性能。只要合理编码,C/C++应用程序在执行效率上必然优于其它高级语言。
参考资料来源:百度百科-溢出
溢出是黑客开发的控制别人电脑的程序。
溢出是黑客利用操作系统的漏洞,专门开发了一种程序,加相应的参数运行后,就可以得到你电脑具有管理员资格的控制权,你在你自己电脑上能够运行的东西他可以全部做到,等于你的电脑就是他的了。
当你用 C/C++ 书写代码时,应该处处留意如何处理来自用户的数据。如果一个函数的数据来源不可靠,又用到内存缓冲区,那么它就必须要做到知道内存缓冲区的总长度和检验内存缓冲区。
扩展资料缓冲区溢出
缓冲区是用户为程序运行时在计算机中申请的一段连续的内存,它保存了给定类型的数据。缓冲区溢出指的是一种常见且危害很大的系统攻击手段,通过向程序的缓冲区写入超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其他的指令,以达到攻击的目的。
数据溢出
在计算机中,当要表示的数据超出计算机所使用的数据的表示范围时,则产生数据的溢出。
客观原因
在 C 和 C++ 语言本身中,这个问题是不容易解决的。该问题基于 C 语言的根本设计决定(特别是 C 语言中指针和数组的处理方式)。由于 C++ 是最兼容的 C 语言超集,它也具有相同的问题。
现实状况
在几乎所有计算机语言中,不管是新的语言还是旧的语言,使缓冲区溢出的任何尝试通常都会被该语言本身自动检测并阻止(比如通过引发一个异常或根据需要给缓冲区添加更多空间)。但是有两种语言不是这样:C 和 C++ 语言。
参考资料:百度百科-溢出