n+1 < n , are you sure?
密码终于找回了,原来是我邮箱把改密链接的邮件当垃圾邮件了……
回到正题,这是道面试题,原话大致是这样的:
n+1<n成立吗?请说明。
当时我听到这个题后直觉是成立的,但是想不到怎么回事,后来别人告诉我说是在溢出的情况下会出现,这下就明白了。
这关系到寄存器存储的知识。
一个寄存器有固定的位数,如8位寄存器,16位寄存器等等,指的是这个寄存器能存储多少个1或0,例如八位寄存器,最多就是往这个寄存器中存入8个1,即255。如下图所示:

那么,有人问了,这和n+1<n有什么关系?
有关系。
理论上,起码我不知道,数的界限在哪里,但是在计算机中,存储数据的寄存器确实有限制的,就如上面的那个八位寄存器,最大8个1,255.
那么,问题来了,假如这个寄存器已经是8个1了,那么它再加1呢?
有人说了,256呗!即100000000。
没错,数学上是没错,但是寄存器怎么存呢?
当它加一后,如下图所示:

寄存器只有八位,存了后面8个0,那第一个1怎么办,扔了!
然后,这个寄存器就成这样了

不用我说这是几了吧?
所以,n+1<n就成立了。
随机推荐
- select标签非空验证,第一个option value=""即可
select标签非空验证,第一个option value=""即可,否则不能验证
- Android菜鸟成长记11 -- sqlite数据库的设计和升降级
Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动 ...
- error-2015-9-9
类型的建键部分无效,该键的所有部分均不可为null 映射从第行开始的片段时有问题 表的键具有潜在运行时冲突 列映射到概念端的属性 但是它们未形成entitySet的键属性 报错: 未能加载文件或程序集 ...
- Unable to require openssl, install OpenSSL and rebuild ruby (preferred) or use non-HTTPS sources解决
解决方法 ruby -v rvm requirements brew install libyaml rvm pkg install openssl rvm install 2.3.1 --with- ...
- 重复数据分析的三个常用语法distinct, group by, partition by
由于数据经常会出现重复现象,数据去重是数据分析中常用操作之一,而distinct,group by, partition by三者都可以实现去重功能,实践中需要根据不同的场景需求来选取相应的语法. d ...
- Volley-XUtils-OkHttp三种方式实现单张多张图片上传
OkHttp可以作为Volley底层传输协议,速度更快,传大量图片建议使用.OkHttp更多功能请看OkHttp的使用 xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更 ...
- 初探C++Primer(15.面向对象程序设计)
最近在恶补OOP相关知识,很遗憾学校的课没选上,于是只能上网购进C++Primer一本,开始重学C++之旅... (壮哉我大ZJU,网购半天到货XDD) 学习路线 7.类->13.类设计者的工具 ...
- Matrix Calculator
表达式分析+矩阵+计算器+寄存器=矩阵计算器 怎么想起来搞这个呢.. //刚看龙书兴致勃勃要搞表达式分析 这个寄存器比较简陋,26字母+4缓存,//字母不分大小写 当然,不只能算矩阵,还能算数= = ...
- [原创]AD9212采样方法
随记 最近由于工程原因用到ADC的采样,选用了ADI公司的AD9212芯片,八通道10位ADC.在进行ADC的采样时,看到的想到的几种方法,在这里做个笔记记录一下. AD9212简介 详细说明可以在A ...
- Symmetric Difference
function sym(args) { //return args; var arr = []; for(var i = 0; i < arguments.length; i++){ arr. ...