程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> n+1 < n , are you sure?,aresure

n+1 < n , are you sure?,aresure

編輯:JAVA綜合教程

n+1 < n , are you sure?,aresure


密碼終於找回了,原來是我郵箱把改密鏈接的郵件當垃圾郵件了……

回到正題,這是道面試題,原話大致是這樣的:

 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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved