成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

據(jù)說(shuō)有99%的人都會(huì)做錯(cuò)的面試題

開發(fā) 開發(fā)工具
這道題主要考察了面試者對(duì)浮點(diǎn)數(shù)存儲(chǔ)格式的理解。另外,請(qǐng)不要討論該題本身是否有意義之類的話題。本題只為了測(cè)試面試者相關(guān)的知識(shí)是否掌握,題目本身并沒有實(shí)際的意義。

這道題主要考察了面試者對(duì)浮點(diǎn)數(shù)存儲(chǔ)格式的理解。另外,請(qǐng)不要討論該題本身是否有意義之類的話題。本題只為了測(cè)試面試者相關(guān)的知識(shí)是否掌握,題目本身并沒有實(shí)際的意義。

下面有6個(gè)浮點(diǎn)類型變量,其中前三個(gè)是float類型的,后三個(gè)是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; 

問題有如下三個(gè):

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

下面我先簡(jiǎn)要說(shuō)說(shuō)如何解答本題,***再給出答案。

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

 
圖1

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

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

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

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

10100.0100110011001...1001

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

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

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

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

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

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

true

false

true

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

責(zé)任編輯:武曉燕 來(lái)源: 51CTO博客
相關(guān)推薦

2015-11-25 10:48:44

JS閉包面試題

2019-03-06 14:55:20

類加載java內(nèi)存

2022-02-10 16:25:11

css面試題選擇器權(quán)重

2019-11-26 10:30:11

CSS前端面試題

2011-03-31 20:35:02

2014-09-19 11:17:48

面試題

2020-06-04 14:40:40

面試題Vue前端

2011-03-24 13:27:37

SQL

2023-11-13 07:37:36

JS面試題線程

2020-03-09 10:43:10

面試中項(xiàng)目經(jīng)驗(yàn)

2024-05-11 08:33:45

JavaJVM虛擬機(jī)

2015-09-02 09:32:56

java線程面試

2009-06-06 18:34:05

java面試題

2009-06-06 18:36:02

java面試題

2018-10-17 14:50:08

2010-11-26 10:53:29

戴爾

2014-07-15 11:10:01

面試題面試

2020-09-21 11:10:06

Docker運(yùn)維面試

2025-02-26 07:58:41

2024-09-24 13:49:13

SQL數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美在线激情 | 久久免费视频1 | 亚洲97| 欧美激情精品久久久久 | 一级欧美日韩 | 国产在线精品一区二区三区 | 久久中文字幕一区 | 一区二区视屏 | 免费一区二区三区在线视频 | 国产欧美一区二区三区国产幕精品 | 综合久久亚洲 | 久久久精品网站 | 国产婷婷色一区二区三区 | 五月激情六月婷婷 | 欧美一区二区在线 | 九九色九九| 亚洲高清av在线 | av在线播放国产 | 91在线看视频 | 久久91| 亚洲一区二区综合 | 99久久久99久久国产片鸭王 | 亚洲综合色网 | 欧美一区二区 | 久久9精品 | 青春草在线 | 影音先锋欧美资源 | 午夜a√| 欧美视频第三页 | 中文字字幕在线中文乱码范文 | 亚洲欧美日韩国产综合 | 色婷婷精品久久二区二区蜜臂av | 亚洲精品国产一区 | 二区高清 | 国产精品久久久久无码av | 最新中文字幕久久 | 新疆少妇videos高潮 | 久久一二 | 视频一区在线播放 | 亚州精品天堂中文字幕 | 亚洲精品在线免费 |