【发布时间】:2020-06-24 01:17:41
【问题描述】:
用于标准库不可用的情况。假设月份是一个无符号整数。
我有兴趣查看给出正确答案的最短算术表达式,允许或禁止按位运算符和掩码,但不允许查找表。部分表达式可以保存到一个变量中,以便于展示所使用的想法。
【问题讨论】:
-
“允许或禁止按位运算符和掩码但不允许查找表”是什么意思。那么允许按位操作吗?是否允许查找表?
-
((((M+9)%12)%5)+1)%2 + 30处理除了二月之外的所有事情,但看到sweetness 之后,为什么还要继续? -
如果您关心快速、可读的代码,查找表是正确的解决方案。如果您需要缓慢、不可读的代码,那么……玩得开心。这个问题闻起来像边缘代码高尔夫。
-
saolof,@Lundin comment 是公平的。为什么不使用查找表?
-
小型查找表在许多形式的汇编语言中并不痛苦,无论是为了维护还是为了性能。尤其是常见的嵌入式 ISA,如 ARM,其内存速度和 CPU 速度之间的差异并不像现代 x86 那样大。 (不过,在现代 x86-64 上,通过移动立即数来实现 2 位查找表是一个不错的技巧。)
标签: date assembly micro-optimization