密碼終於找回了,原來是我郵箱把改密鏈接的郵件當垃圾郵件了……
回到正題,這是道面試題,原話大致是這樣的:
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就成立了。