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