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等奇怪数字打交道的原因了。它们表示的十六进制数。
怎么样够烦人的吧?我也曾经这样认为,为了进一步更好更快地掌握学习游戏编程,你必须了解这些进制转换。