一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1335|回复: 22
收起左侧

9月18日,google电面

[复制链接] |试试Instant~ |关注本帖
天堂在笑 发表于 2015-9-20 03:23:45 | 显示全部楼层 |阅读模式

2015(10-12月) 码农类 硕士 全职@Google - 网上海投 - 技术电面 |Otherfresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?获取更多干货,去instant注册!

x
9月18号google电面
一道题,实现Binary-Coded Decimal (BCD) 码的运算。
楼主转专业,**一个,根本没听过这个概念,刷过的题太少,也没见过,晕得一塌糊涂,在对方的各种hints下写得不知所云。
.鏈枃鍘熷垱鑷1point3acres璁哄潧
.1point3acres缃
供大家参考吧……
. 1point 3acres 璁哄潧

事后已经恶补相关知识,sigh……


move on next company

评分

1

查看全部评分

storm_hair 发表于 2015-9-20 03:53:47 | 显示全部楼层
我是专业的,但我也不知道
回复 支持 反对

使用道具 举报

hulahu 发表于 2015-9-20 03:54:01 | 显示全部楼层
楼主, 举个例子吧
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-20 04:04:13 | 显示全部楼层
hulahu 发表于 2015-9-20 03:54
楼主, 举个例子吧

BCD码的运算法则
BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将 BCD码传送给运算器进行运算时,其结果需要修正。修正的规则是:当两个BCD码相加,如果和等于或小于 1001(即十进制数9),不需要修正;如果相加之和在 1010 到1111(即十六进制数 0AH~0FH)之间,则需加 6 进行修正;如果相加时,本位产生了进位,也需加 6 进行修正。这样做的原因是,机器按二进制相加,所以 4 位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是 2 个十进制数相加,应该按“逢十进一”的原则相加,16 与10相差 6,所以当和超过 9或有进位时,都要加 6 进行修正。下面举例说明。
【例 1.3】 需要修正 BCD码运算值的举例。
(1) 计算 5+8;(2) 计算 8+8
解:(1) 将 5 和 8 以 8421 BCD输入机器,则运算如下:
0 1 0 1
+) 1 0 0 0
1 1 0 1 结果大于 9
+) 0 1 1 0 加 6 修正-google 1point3acres
1 0 0 1 1 即13 的 BCD码. from: 1point3acres.com/bbs
结果是 0011,即十进制数3,还产生了进位。5+8=13,结论正确。
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴(2)将8以8421 BCD输入机器,则运算如下:
1 0 0 0
+)1 0 0 0
1 0 0 0 0 结果大于9
+)0 1 1 0 加6修正
1 0 1 1 0 16的BCD码
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴结果是0110,即十进制的6,而且产生进位。8+8=16,结论正确。
微机原理代码: (AL=BCD 5,BL=BCD 8) 设AH=0,则. From 1point 3acres bbs
ADD AL,BL
AAA
结果为 AX=0103H,表示非压缩十进制数,CF=1,AF=1,AH=1,AL=3
使用AAA指令,可以不用屏蔽高半字节,只要在相加后立即执行AAA指令,便能在AX中得到一个正确的非压缩十进制数
. from: 1point3acres.com/bbs

--------------------------

抄的百度……
回复 支持 反对

使用道具 举报

storm_hair 发表于 2015-9-20 04:33:51 | 显示全部楼层
天堂在笑 发表于 2015-9-20 04:04
BCD码的运算法则
BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规 ...

. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴突然想起来其实计算机组成原理的时候学过
回复 支持 反对

使用道具 举报

M_Jason 发表于 2015-9-20 04:45:07 | 显示全部楼层
其实面试官给解释了BCD的概念之后,也就不算很难了,我觉得G家的面试本来就趋于给这种新题,让你没有准备,然后看你的学习和理解能力的。话说,楼主能不能贴一个这道题的函数名呢?包括参数和返回值在内的。谢了~
回复 支持 反对

使用道具 举报

hulahu 发表于 2015-9-20 05:32:45 | 显示全部楼层
赞同, 但是, 看到新题就紧张。
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-9-20 05:38:30 | 显示全部楼层
看到这题就想GG了。。。。
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-20 06:20:57 | 显示全部楼层
M_Jason 发表于 2015-9-20 04:45. visit 1point3acres.com for more.
其实面试官给解释了BCD的概念之后,也就不算很难了,我觉得G家的面试本来就趋于给这种新题,让你没有准备, ...

private static class Result {
            private final int sign;
            private final int[] digits;

            Result(int sign, int[] digits) {
              this.sign = sign;
              this.digits = digits;
            }
          }
private static Result addDigits(int[]a,int[]b){}.1point3acres缃
private static Result subtractDigits(int[] a, int[] b) { }
........
private static int compare(int[] a, int[] b) {}. Waral 鍗氬鏈夋洿澶氭枃绔,

大体框架就是这样了
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-20 06:21:43 | 显示全部楼层
hulahu 发表于 2015-9-20 05:32
赞同, 但是, 看到新题就紧张。

是啊!感觉懵了一样……都不知道我在写什么……
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-20 06:21:56 | 显示全部楼层
坐看云起 发表于 2015-9-20 05:38
看到这题就想GG了。。。。

GG是什么意思……
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-20 06:23:42 | 显示全部楼层
天堂在笑 发表于 2015-9-20 06:20
private static class Result {
            private final int sign;. 1point 3acres 璁哄潧
            private final int[] digits;

不让用int,就是用数组一个一个存数字,所以减法乘法除法都有借位进位那些乱七八糟的,你自己想好了……
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-20 06:24:40 | 显示全部楼层
storm_hair 发表于 2015-9-20 04:33
突然想起来其实计算机组成原理的时候学过

其实就是二进制么……
回复 支持 反对

使用道具 举报

storm_hair 发表于 2015-9-20 06:29:03 | 显示全部楼层
天堂在笑 发表于 2015-9-20 06:24. from: 1point3acres.com/bbs
其实就是二进制么……

有专门一节讲解各种“常(qi)用(guai)”二进制编码
回复 支持 反对

使用道具 举报

M_Jason 发表于 2015-9-20 07:15:01 | 显示全部楼层
hulahu 发表于 2015-9-20 05:32
赞同, 但是, 看到新题就紧张。

哈哈,那就得多练习面试了,本来其实就不应该期待原题的,尤其是面G家还有那些傲娇的startup的时候。
回复 支持 反对

使用道具 举报

M_Jason 发表于 2015-9-20 07:16:14 | 显示全部楼层
天堂在笑 发表于 2015-9-20 06:20
private static class Result {
            private final int sign;
            private final int[] digits;
. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
soga,多谢了!不过,那中间的省略号是什么意思?难道还让你实现乘法除法了?
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-21 04:08:23 | 显示全部楼层
M_Jason 发表于 2015-9-20 07:16-google 1point3acres
soga,多谢了!不过,那中间的省略号是什么意思?难道还让你实现乘法除法了?

其它自己写的方法,比如b<a的时候,b的数组长度短于a,那b就需要补位为0
回复 支持 反对

使用道具 举报

坐看云起 发表于 2015-9-22 06:50:29 | 显示全部楼层
楼主,这道题能不能先把BCD转换成Binary,计算完在转换回来?
回复 支持 反对

使用道具 举报

 楼主| 天堂在笑 发表于 2015-9-22 10:43:54 | 显示全部楼层
坐看云起 发表于 2015-9-22 06:50
楼主,这道题能不能先把BCD转换成Binary,计算完在转换回来?

不行……不让用……
回复 支持 反对

使用道具 举报

uuuouou 发表于 2015-9-22 11:14:14 | 显示全部楼层
真是涨姿势了,赞lz面经~
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-7 18:50

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表