日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
據(jù)說有99%的人都會做錯的面試題

這道題主要考察了面試者對浮點數(shù)存儲格式的理解。另外,請不要討論該題本身是否有意義之類的話題。本題只為了測試面試者相關的知識是否掌握,題目本身并沒有實際的意義。

衢江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

下面有6個浮點類型變量,其中前三個是float類型的,后三個是double類型的。題目的代碼如下:

 
 
  1. float f_v1 = 20;  
  2. float f_v2 = 20.3;  
  3. float f_v3 = 20.5;  
  4. double d_v1 = 20;  
  5. double d_v2 = 20.3;  
  6. double d_v3 = 20.5;  
  7. cout << ((f_v1 == d_v1)?"true":"false") << endl;  
  8. cout << ((f_v2 == d_v2)?"true":"false") << endl;  
  9. cout << ((f_v3 == d_v3)?"true":"false") << endl; 

問題有如下三個:

  1. 本題的運行結果是什么
  2. 請根據(jù)本題的運行結果解釋其原因
  3. 如果某個cout語句的輸出結果為false,在不改變變量定義語句的前提下,如何扔棄相等呢?

下面我先簡要說說如何解答本題,***再給出答案。

首先應先了解float和double的存儲方式。這里先拿float為例。float一共占4個字節(jié),共32位。分為3部分:符號位、指數(shù)位和尾數(shù)位。分別占1位、8位和23位,存儲結構如圖1所示。

 
圖1

其中如果浮點數(shù)為正值,符號位為0,否則為1。指數(shù)位采用移位存儲,也就是如果表示10^4,需要將4與127(二進制是01111111)相加存入指數(shù)位。尾數(shù)位決定了float的精度。尾數(shù)一共23位,最多可以表示8388607個值,由于沒有到9999999,所以float的精度為6,如果表示的數(shù)小于8388608,那么精度可到7位。這也是為什么有的書中說float的精度是6到7位的原因。這里并不是所有的數(shù)都能精確到7位。

另外,所謂的精度是指科學計數(shù)法E前面的數(shù)字的小數(shù)個數(shù)。例如,1.2345678E10。

這個數(shù)用float表示是可以精確到7位,因為2345678小于8388608。如果是1. 9388648E10,那么就只能精確到6位了。

如果理解了這個,還需要了解如何將十進制浮點數(shù)轉換為二進制浮點數(shù),別告訴我你不會,如果真不會的話,回大學從念吧??傊?,浮點數(shù)轉換是分別轉換整數(shù)和小數(shù)部分。整數(shù)部分除2,小數(shù)部分乘2。例如,20.5轉換為二進制是10100.1,20.3轉換為二進制如下:

10100.0100110011001...1001

其中“...”表示1001部分***循環(huán)。也就是說20.3轉換為二進制浮點數(shù)是一個而***循環(huán)的二進制浮點數(shù)。

***,需要知道如何用科學計數(shù)法表示二進制浮點數(shù)(長見識了吧,二進制也可以用科學計數(shù)法)。20.5的科學計數(shù)法表示是:1.01001E100

20.3的科學計數(shù)法表示是:1.0100010011001...E100

現(xiàn)在就可以一個蘿卜一坑個了,將對應的數(shù)填入圖1的三個區(qū)域吧。

現(xiàn)在將20.5和20.3都存入double類型的變量,就可以一下看出本題的結果了。double占64位,8個字節(jié)。符號位占1位,指數(shù)位占11位,尾數(shù)位占52位。精度是15或16,原理和float一樣。

現(xiàn)在公布一下答案:

true

false

true

如果還沒理解其中的奧秘,可以看詳細的視頻講解。


網(wǎng)頁名稱:據(jù)說有99%的人都會做錯的面試題
文章分享:http://www.5511xx.com/article/cdhpded.html