密码终于找回了,原来是我邮箱把改密链接的邮件当垃圾邮件了……

回到正题,这是道面试题,原话大致是这样的:

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就成立了。

随机推荐

  1. 用fxc.exe编译shader文件(*.fx, *.hlsl)的设置

    原文出自:http://msdn.microsoft.com/en-us/library/windows/desktop/bb509709(v=vs.85).aspx#Profiles 拿DX11 S ...

  2. Python之路-Day2

    二进制 1bit = 一个二进制位 8bit = 1byte 循环 for while 数据类型 数字.字符串.列表.元祖.字典.集合 字符编码 文件处理 for循环: for i in range( ...

  3. Android_SQLite之创建数据库

    今天我们主要学习了SQLite.主要是其中的创建数据库,连接这块. 现在我们先简单讲解下什么是SQLite 一.SQLite 简介 Google为Andriod的较大的数据处理提供了SQLite, 他 ...

  4. WampServer Apache 服务无法启动解决办法

    问题:WampServer 安装后mysql服务可以启动,但Apache服务启动不了(前提是已经安装Apache Server) 解决办法: 1.端口冲突,改Apache里httpd.conf中的端口 ...

  5. (十三) [终篇] 一起学 Unix 环境高级编程 (APUE) 之 网络 IPC:套接字

    . . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...

  6. 做webapp静态页面的一些积累

    ​1)根据pad,手机不同的版本的屏幕大小设置字体的大小(可以使用此方式根据屏幕的不同进行设置,由于我左边的图片是设置的float='left',使用的是img标签的百分比来显示图片) (使用此方式, ...

  7. markdown基本操作

    #                                    一级标题 ##                                  二级标题,以此类推 - 或者 *       ...

  8. Hibernate自动建表问题

    自动见表配置 <property key="hibernate.hbm2ddl.auto">update</property> 运行时出现了一下错误 org ...

  9. 去空格 whitespaceAndNewlineCharacterSet和过滤字符串

    一.过滤字符串 可以使用stringByTrimmingCharactersInSet函数过滤字符串中的特殊符号 首先自己定义一个NSCharacterSet, 包含需要去除的特殊符号 NSChara ...

  10. Java程序调用javascript等脚本的实现方法

    public static void main(String[] args) throws FileNotFoundException, ScriptException, NoSuchMethodEx ...