首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >实现BCD算法

实现BCD算法
EN

Code Golf用户
提问于 2011-02-11 02:11:28
回答 2查看 728关注 0票数 4

编写尽可能最短的函数,其中包含两个二进制编码十进制整数和一个指示执行和返回结果的算术操作的字符。

输入规格

您将被传递两个代表无符号BCD整数的32位位模式。例如,在C或Java中,您将被传递一个int (如果您愿意的话,unsigned)。函数的第三个参数将是一个字符,表示要执行的操作。如果您的语言需要固定的返回大小,则返回32位结果并忽略溢出。您的返回值也应该编码为BCD。

您应该支持+-*/%。对于减法,第一个参数是分钟,第二个参数是减法。对于除法和模,第一个参数是商,第二个参数是除数。

示例

代码语言:javascript
复制
bcd(0x00000127, 0x00000003, '+') => 0x00000130 // NOT 0x0000012A
EN

回答 2

Code Golf用户

回答已采纳

发布于 2011-02-11 02:20:09

Python-47 chars

代码语言:javascript
复制
bcd=lambda*a:"0x%08d"%eval("%x%s%x"%(a*2)[::2])

测试

代码语言:javascript
复制
>>> print bcd(0x00000127, 0x00000003, '+')
0x00000130
>>> print bcd(0x00000127, 0x00000003, '*')
0x00000381
>>> print bcd(0x00000127, 0x00000003, '/')
0x00000042
>>> print bcd(0x00000127, 0x00000003, '-')
0x00000124
票数 1
EN

Code Golf用户

发布于 2017-11-29 06:10:41

JavaScript ES6,61字节

代码语言:javascript
复制
(a,b,y)=>0|'0x'+~~eval([a,b].map(t=>+t.toString(16)).join(y))
票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/844

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档