0
我正在做一些使用tesseral算术的工作,我需要检测一个单词的特定区域中的进位。由于程序的性质,位的位置取决于输入。例如,对于一个32位的字长和一个6位的输入,我有兴趣检查第19和3位的加法运算,第31和15位进行减法运算(更一般地,有趣的位是(字长 - 1),(字大小/ 2 +输入位/ 2),(字大小/ 2-1)和(输入位/ 2))。自定义溢出检测
我在想什么是沿着线的东西:
(after addition) ((NumberToCheck & (1 << 19 + 1 << 3)) != 0) --> carried bit(s)
(or after subtraction) ((NumberToCheck & (1 << 31 + 1 << 15)) != 0) --> carried bit(s)
有没有更好的办法呢?
我不确定这种方法会做我需要的;当我使用tesseral算术时,我首先解决了我正在处理的单词中的一些问题。然后,我需要立即检查两个地点的运输情况;一个用于x坐标,另一个用于y。在上面的例子中,我有类似00000xxx00000xxxb(其中每个x是一些有意义的值,每个0都不是),所以分配最大数目只会帮助左子字。 – bendicott 2012-03-02 02:13:09
如果有帮助,我也只对积极空间感兴趣,所以a和b将始终是积极的价值。每个子词只会增加或减少一个,这进一步简化了事情 - 如果他们这样做,我知道这些承载发生在哪里。我主要对速度感兴趣;有没有更好的方法来检查这些特定位的更改? (对于双重发布,不适合一个评论) – bendicott 2012-03-02 02:13:29