A. 《程序員面試金典(第5版)》epub下載在線閱讀,求百度網盤雲資源
《程序員面試金典(第5版)》([美] Gayle Laakmann McDowell)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:https://pan..com/s/1_iUzJa9Q_XJO5A_aRQGdDQ 提取碼:79f5
書名:程序員面試金典(第5版)
作者:[美] Gayle Laakmann McDowell
譯者:李琳驍
豆瓣評分:8.9
出版社:人民郵電出版社
出版年份:2013-11
頁數:372
內容簡介:
本書是原谷歌資深面試官的經驗之作,層層緊扣程序員面試的每一個環節,全面而詳盡地介紹了程序員應當如何應對面試,才能在面試中脫穎而出。第1~7 章主要涉及面試流程解析、面試官的幕後決策及可能提出的問題、面試前的准備工作、對面試結果的處理等內容;第8~9 章從數據結構、概念與演算法、知識類問題和附加面試題4 個方面,為讀者呈現了出自微軟、蘋果、谷歌等多家知名公司的150 道編程面試題,並針對每一道面試題目,分別給出了詳細的解決方案。
本書適合程序開發和設計人員閱讀。
作者簡介:
作者簡介:
Gayle Laakmann McDwell
美國求職咨詢網站CareerCup.cm創始人兼CE,是一位著名軟體工程師,曾在微軟、蘋果與谷歌任職。早先,她自己就是一位十分成功的求職者,成功通過了微軟、谷歌、亞馬遜、蘋果、IBM、高盛等多家最著名企業極其嚴苛的面試過程。工作以後,她又成為一位出色的面試官。在谷歌任職期間,她還是該公司資深面試官及招聘委員會成員,期間閱人無數,積累了相當豐富的面試經驗。除此書外,還著有《金領簡歷:敲開蘋果、微軟、谷歌的大門》。
譯者簡介:
李琳驍
從事嵌入式Linux內核/驅動開發,關注IT、開放源碼和安防監控等領域。業余時以技術翻譯為樂,時而客串編輯,好為愛書挑錯,渴求完美,卻也常因「小」失大,不得讀書要領。翻譯或參與翻譯了《Linux命令詳解手冊》《編程人生》《編程大師訪談錄》等圖書。網路ID為leal,管理Vim、Andrid等豆瓣小組,個人站點:http://linxia.net。
漆犇
畢業於中國地質大學,擁有十餘年軟體開發、測試及流程管理經驗,曾翻譯出版了《Linux/Unix設計思想》《金領簡歷 : 敲開蘋果、微軟、谷歌的大門》等書。目前定居於美國西雅圖,在微軟Windws Phne開發中心從事與WP應用開發者相關的項目管理事務。
B. 急急急!!! 知道快進!!!
數是除2取余倒計法,小數是乘2取整正計法。負數和正數一樣,只是最後加個負號就行了。舉幾個例子
首先八進制Octal:
八進制Octal是以8為基的。因為8 == 2^3, 所以每個八進制數字代表3個二進制數字(或位)
如:123(octal) = 001 010 011
十進制如下:41(decimal) = 0010 1001 = 00 101 001 = 051 (octal)
注意:分組是從最右邊開始的(41 不能如下分組"001 010 01")
十六進制:
十六進制Hex是以16為基的。因為16 == 2^4, 所以每個八進制數字代表4個二進制數字(或位)
單個十六進制數字的范圍是0000 - 1111 (即 0-15 (十進制decimal)), 但是這樣的話數字不夠了,因此十進制10-15 (1010-1111)用字母A-F (大小寫無所謂)代表.
例如:
123(hex) = 0001 0010 0011
1ac(hex) = 0001 1010 1100
用十進制一樣:41(十進制) = 0010 1001 = 29 (十六進制hex)
8(進制)轉換成2(進制)-----把每一位數轉化為三位數,
16((進制)轉換成2(進制)---把每一位數轉化為四位數,
8(進制)轉換成16(進制)----先轉化為2進制,再轉化,...
16(進制)轉換成8(進制)----先轉化為2進制,再轉化,...
回答者:獨立寒冬 - 高級經理 六級 4-20 16:02
windows附件里自帶有計算器,選擇為科學型很容易就實現進制轉換!
電腦上的常用進制有:2、8、10、16四種,在修改中經常接觸的是2、10和16進制,基本上需要了解的是2和16互轉、10和16互轉,其他多了解也沒虧
2轉16:
4個2進制位為一個16進制數,2進制1111為16進制F,2進制中千位的1=8,百位的1=4,十位的1=2,個位的1=1,將各個位的數作相應轉換再相加,的到的數就是10進制數0-15,可輕松轉換成16進制。如01011100,可看成是兩組2進制數0101和1100,則這個數就是16進制的5C。
10轉16:
100以內一點的10轉16心算比較快,復雜的用「計算器」算了。10轉16用傳統的計算方式可以了,就是大於15小於256的10進制數除以16為的值為十位的16進制數,其餘數為個位的16進制數,沒余數則個位為0。如61的16進制是3D,61除以16得3餘13,3作十位數,13轉成D為各位數。
16轉10:
用相反的道理,將十位數乘以16加上個位數。如5A,將5乘以16得80,加上A的10進制10,結果是90。
最直接方便的方法是用windows或win95中的計算器,打開計算器,將計算器置成科學型(win95的乘法),選中十進制選擇鈕,輸入十進制數然後選擇二進制選擇鈕,OK!又快又准確。可是如果你想成為一個合格的程序員的話,你就必須充分了解十進制數和二進制數的特點,最好的方法是你多做一些進制轉換的題目,這是程序員訓練中的傳統做法。
三、以十六進製作橋梁
十進制到二進制的轉換實在麻煩,而且二進制數實在不易記憶和理解,你能馬上感覺到一萬元是多少錢,但是你能感覺到10011100010000(二進制)是多少嗎?為了編程和使用方便,在二進制和十進制之間有了一座橋梁十六進制。十六進制是逢十六進一,0、1、2、3、4、5、…9、A、B、C、D、E、F、10、11、12……。到了9以後用ABCDEF表示,十六進制數與二進制數的轉換非常方便。
首先你應當牢記下表
二進制 十六進制
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
二進制數轉換成十六進制數方法如下,以二進制數1101110為例:
將二進制數從右面開始以四位為一組分組,最左面不夠四位的補0,按上表查得對應的十六進制數,組合起來以後就成了。
0110 1110的十六進制數是6E
十六進制轉換成二進制方法如下,以十六進制數3E為例:
將十六進制的每一位轉換成四位二進制數,不足四位的在左面補0,組合起來即可得到二進制數。
3E的二進制數是00111110,既是111110
當然你也可以用計算器得出結果。但也建議你熟練掌握。
也許熱愛改游戲的你已經猜到,這就是你在改游戲的時候為什麼總是與2A、3B、4C、5D、EF等奇怪數字打交道的原因了。它們表示的十六進制數。
怎麼樣夠煩人的吧?我也曾經這樣認為,為了進一步更好更快地掌握學習游戲編程,你必須了解這些進制轉換。
數是除2取余倒計法,小數是乘2取整正計法。負數和正數一樣,只是最後加個負號就行了。舉幾個例子
首先八進制Octal:
八進制Octal是以8為基的。因為8 == 2^3, 所以每個八進制數字代表3個二進制數字(或位)
如:123(octal) = 001 010 011
十進制如下:41(decimal) = 0010 1001 = 00 101 001 = 051 (octal)
注意:分組是從最右邊開始的(41 不能如下分組"001 010 01")
十六進制:
十六進制Hex是以16為基的。因為16 == 2^4, 所以每個八進制數字代表4個二進制數字(或位)
單個十六進制數字的范圍是0000 - 1111 (即 0-15 (十進制decimal)), 但是這樣的話數字不夠了,因此十進制10-15 (1010-1111)用字母A-F (大小寫無所謂)代表.
例如:
123(hex) = 0001 0010 0011
1ac(hex) = 0001 1010 1100
用十進制一樣:41(十進制) = 0010 1001 = 29 (十六進制hex)
8(進制)轉換成2(進制)-----把每一位數轉化為三位數,
16((進制)轉換成2(進制)---把每一位數轉化為四位數,
8(進制)轉換成16(進制)----先轉化為2進制,再轉化,...
16(進制)轉換成8(進制)----先轉化為2進制,再轉化,...
回答者:獨立寒冬 - 高級經理 六級 4-20 16:02
windows附件里自帶有計算器,選擇為科學型很容易就實現進制轉換!
電腦上的常用進制有:2、8、10、16四種,在修改中經常接觸的是2、10和16進制,基本上需要了解的是2和16互轉、10和16互轉,其他多了解也沒虧
2轉16:
4個2進制位為一個16進制數,2進制1111為16進制F,2進制中千位的1=8,百位的1=4,十位的1=2,個位的1=1,將各個位的數作相應轉換再相加,的到的數就是10進制數0-15,可輕松轉換成16進制。如01011100,可看成是兩組2進制數0101和1100,則這個數就是16進制的5C。
10轉16:
100以內一點的10轉16心算比較快,復雜的用「計算器」算了。10轉16用傳統的計算方式可以了,就是大於15小於256的10進制數除以16為的值為十位的16進制數,其餘數為個位的16進制數,沒余數則個位為0。如61的16進制是3D,61除以16得3餘13,3作十位數,13轉成D為各位數。
16轉10:
用相反的道理,將十位數乘以16加上個位數。如5A,將5乘以16得80,加上A的10進制10,結果是90。
最直接方便的方法是用windows或win95中的計算器,打開計算器,將計算器置成科學型(win95的乘法),選中十進制選擇鈕,輸入十進制數然後選擇二進制選擇鈕,OK!又快又准確。可是如果你想成為一個合格的程序員的話,你就必須充分了解十進制數和二進制數的特點,最好的方法是你多做一些進制轉換的題目,這是程序員訓練中的傳統做法。
三、以十六進製作橋梁
十進制到二進制的轉換實在麻煩,而且二進制數實在不易記憶和理解,你能馬上感覺到一萬元是多少錢,但是你能感覺到10011100010000(二進制)是多少嗎?為了編程和使用方便,在二進制和十進制之間有了一座橋梁十六進制。十六進制是逢十六進一,0、1、2、3、4、5、…9、A、B、C、D、E、F、10、11、12……。到了9以後用ABCDEF表示,十六進制數與二進制數的轉換非常方便。
首先你應當牢記下表
二進制 十六進制
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
二進制數轉換成十六進制數方法如下,以二進制數1101110為例:
將二進制數從右面開始以四位為一組分組,最左面不夠四位的補0,按上表查得對應的十六進制數,組合起來以後就成了。
0110 1110的十六進制數是6E
十六進制轉換成二進制方法如下,以十六進制數3E為例:
將十六進制的每一位轉換成四位二進制數,不足四位的在左面補0,組合起來即可得到二進制數。
3E的二進制數是00111110,既是111110
當然你也可以用計算器得出結果。但也建議你熟練掌握。
也許熱愛改游戲的你已經猜到,這就是你在改游戲的時候為什麼總是與2A、3B、4C、5D、EF等奇怪數字打交道的原因了。它們表示的十六進制數。
怎麼樣夠煩人的吧?我也曾經這樣認為,為了進一步更好更快地掌握學習游戲編程,你必須了解這些進制轉換。
數是除2取余倒計法,小數是乘2取整正計法。負數和正數一樣,只是最後加個負號就行了。舉幾個例子
首先八進制Octal:
八進制Octal是以8為基的。因為8 == 2^3, 所以每個八進制數字代表3個二進制數字(或位)
如:123(octal) = 001 010 011
十進制如下:41(decimal) = 0010 1001 = 00 101 001 = 051 (octal)
注意:分組是從最右邊開始的(41 不能如下分組"001 010 01")
十六進制:
十六進制Hex是以16為基的。因為16 == 2^4, 所以每個八進制數字代表4個二進制數字(或位)
單個十六進制數字的范圍是0000 - 1111 (即 0-15 (十進制decimal)), 但是這樣的話數字不夠了,因此十進制10-15 (1010-1111)用字母A-F (大小寫無所謂)代表.
例如:
123(hex) = 0001 0010 0011
1ac(hex) = 0001 1010 1100
用十進制一樣:41(十進制) = 0010 1001 = 29 (十六進制hex)
8(進制)轉換成2(進制)-----把每一位數轉化為三位數,
16((進制)轉換成2(進制)---把每一位數轉化為四位數,
8(進制)轉換成16(進制)----先轉化為2進制,再轉化,...
16(進制)轉換成8(進制)----先轉化為2進制,再轉化,...
回答者:獨立寒冬 - 高級經理 六級 4-20 16:02
windows附件里自帶有計算器,選擇為科學型很容易就實現進制轉換!
電腦上的常用進制有:2、8、10、16四種,在修改中經常接觸的是2、10和16進制,基本上需要了解的是2和16互轉、10和16互轉,其他多了解也沒虧
2轉16:
4個2進制位為一個16進制數,2進制1111為16進制F,2進制中千位的1=8,百位的1=4,十位的1=2,個位的1=1,將各個位的數作相應轉換再相加,的到的數就是10進制數0-15,可輕松轉換成16進制。如01011100,可看成是兩組2進制數0101和1100,則這個數就是16進制的5C。
10轉16:
100以內一點的10轉16心算比較快,復雜的用「計算器」算了。10轉16用傳統的計算方式可以了,就是大於15小於256的10進制數除以16為的值為十位的16進制數,其餘數為個位的16進制數,沒余數則個位為0。如61的16進制是3D,61除以16得3餘13,3作十位數,13轉成D為各位數。
16轉10:
用相反的道理,將十位數乘以16加上個位數。如5A,將5乘以16得80,加上A的10進制10,結果是90。
最直接方便的方法是用windows或win95中的計算器,打開計算器,將計算器置成科學型(win95的乘法),選中十進制選擇鈕,輸入十進制數然後選擇二進制選擇鈕,OK!又快又准確。可是如果你想成為一個合格的程序員的話,你就必須充分了解十進制數和二進制數的特點,最好的方法是你多做一些進制轉換的題目,這是程序員訓練中的傳統做法。
三、以十六進製作橋梁
十進制到二進制的轉換實在麻煩,而且二進制數實在不易記憶和理解,你能馬上感覺到一萬元是多少錢,但是你能感覺到10011100010000(二進制)是多少嗎?為了編程和使用方便,在二進制和十進制之間有了一座橋梁十六進制。十六進制是逢十六進一,0、1、2、3、4、5、…9、A、B、C、D、E、F、10、11、12……。到了9以後用ABCDEF表示,十六進制數與二進制數的轉換非常方便。
首先你應當牢記下表
二進制 十六進制
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
二進制數轉換成十六進制數方法如下,以二進制數1101110為例:
將二進制數從右面開始以四位為一組分組,最左面不夠四位的補0,按上表查得對應的十六進制數,組合起來以後就成了。
0110 1110的十六進制數是6E
十六進制轉換成二進制方法如下,以十六進制數3E為例:
將十六進制的每一位轉換成四位二進制數,不足四位的在左面補0,組合起來即可得到二進制數。
3E的二進制數是00111110,既是111110
當然你也可以用計算器得出結果。但也建議你熟練掌握。
也許熱愛改游戲的你已經猜到,這就是你在改游戲的時候為什麼總是與2A、3B、4C、5D、EF等奇怪數字打交道的原因了。它們表示的十六進制數。
怎麼樣夠煩人的吧?我也曾經這樣認為,為了進一步更好更快地掌握學習游戲編程,你必須了解這些進制轉換。
數是除2取余倒計法,小數是乘2取整正計法。負數和正數一樣,只是最後加個負號就行了。舉幾個例子
首先八進制Octal:
八進制Octal是以8為基的。因為8 == 2^3, 所以每個八進制數字代表3個二進制數字(或位)
如:123(octal) = 001 010 011
十進制如下:41(decimal) = 0010 1001 = 00 101 001 = 051 (octal)
注意:分組是從最右邊開始的(41 不能如下分組"001 010 01")
十六進制:
十六進制Hex是以16為基的。因為16 == 2^4, 所以每個八進制數字代表4個二進制數字(或位)
單個十六進制數字的范圍是0000 - 1111 (即 0-15 (十進制decimal)), 但是這樣的話數字不夠了,因此十進制10-15 (1010-1111)用字母A-F (大小寫無所謂)代表.
例如:
123(hex) = 0001 0010 0011
1ac(hex) = 0001 1010 1100
用十進制一樣:41(十進制) = 0010 1001 = 29 (十六進制hex)
8(進制)轉換成2(進制)-----把每一位數轉化為三位數,
16((進制)轉換成2(進制)---把每一位數轉化為四位數,
8(進制)轉換成16(進制)----先轉化為2進制,再轉化,...
16(進制)轉換成8(進制)----先轉化為2進制,再轉化,...
回答者:獨立寒冬 - 高級經理 六級 4-20 16:02
windows附件里自帶有計算器,選擇為科學型很容易就實現進制轉換!
電腦上的常用進制有:2、8、10、16四種,在修改中經常接觸的是2、10和16進制,基本上需要了解的是2和16互轉、10和16互轉,其他多了解也沒虧
2轉16:
4個2進制位為一個16進制數,2進制1111為16進制F,2進制中千位的1=8,百位的1=4,十位的1=2,個位的1=1,將各個位的數作相應轉換再相加,的到的數就是10進制數0-15,可輕松轉換成16進制。如01011100,可看成是兩組2進制數0101和1100,則這個數就是16進制的5C。
10轉16:
100以內一點的10轉16心算比較快,復雜的用「計算器」算了。10轉16用傳統的計算方式可以了,就是大於15小於256的10進制數除以16為的值為十位的16進制數,其餘數為個位的16進制數,沒余數則個位為0。如61的16進制是3D,61除以16得3餘13,3作十位數,13轉成D為各位數。
16轉10:
用相反的道理,將十位數乘以16加上個位數。如5A,將5乘以16得80,加上A的10進制10,結果是90。
最直接方便的方法是用windows或win95中的計算器,打開計算器,將計算器置成科學型(win95的乘法),選中十進制選擇鈕,輸入十進制數然後選擇二進制選擇鈕,OK!又快又准確。可是如果你想成為一個合格的程序員的話,你就必須充分了解十進制數和二進制數的特點,最好的方法是你多做一些進制轉換的題目,這是程序員訓練中的傳統做法。
三、以十六進製作橋梁
十進制到二進制的轉換實在麻煩,而且二進制數實在不易記憶和理解,你能馬上感覺到一萬元是多少錢,但是你能感覺到10011100010000(二進制)是多少嗎?為了編程和使用方便,在二進制和十進制之間有了一座橋梁十六進制。十六進制是逢十六進一,0、1、2、3、4、5、…9、A、B、C、D、E、F、10、11、12……。到了9以後用ABCDEF表示,十六進制數與二進制數的轉換非常方便。
首先你應當牢記下表
二進制 十六進制
0 0
1 1
10 2
11 3
100 4
101 5
110 6
111 7
1000 8
1001 9
1010 A
1011 B
1100 C
1101 D
1110 E
1111 F
二進制數轉換成十六進制數方法如下,以二進制數1101110為例:
將二進制數從右面開始以四位為一組分組,最左面不夠四位的補0,按上表查得對應的十六進制數,組合起來以後就成了。
0110 1110的十六進制數是6E
十六進制轉換成二進制方法如下,以十六進制數3E為例:
將十六進制的每一位轉換成四位二進制數,不足四位的在左面補0,組合起來即可得到二進制數。
3E的二進制數是00111110,既是111110
當然你也可以用計算器得出結果。但也建議你熟練掌握。
也許熱愛改游戲的你已經猜到,這就是你在改游戲的時候為什麼總是與2A、3B、4C、5D、EF等奇怪數字打交道的原因了。它們表示的十六進制數。
怎麼樣夠煩人的吧?我也曾經這樣認為,為了進一步更好更快地掌握學習游戲編程,你必須了解這些進制轉換。