integer-arithmetic

    0熱度

    1回答

    我試圖將我的arbitrary precision integer類轉換成能夠使用不是每位數8位的數字。我偶然發現了一個奇怪的問題:我可以使用uint16_t 作爲我的基本數字類型,但不能使用uint32_t。我的代碼將返回不好的結果。我用來找出錯誤的例子是0x1111111111111111 * 0x1111111111111111,應該是0x123456789abcdf00fedcba9876

    0熱度

    3回答

    我有一個關於如何printf()方法打印整數,有符號或無符號的問題。有一天,我發現自己考慮了將二進制序列轉換爲人類可以理解的十進制數字序列是多麼困難,因爲計算機沒有小數概念。 下面,我有一個printf()方法(從here)及其相關的方法。我試圖瞭解儘可能多地談談如何printi()的作品,你可以在評論中看到: #define PAD_RIGHT 1 #define PAD_ZERO 2 #

    0熱度

    3回答

    說我有16個64位無符號整數。在執行操作時,我一直非常小心地在它們之間提供攜帶物。我可以將它們送入一種方法,將它們全部轉換爲一串十進制數字,就像它是一個1024位二進制數字一樣?換句話說,是否可以創建一個方法來處理代表一個大整數的任意數量的整數? 我認爲對於有符號整數會更困難,因爲最重要的一點是需要處理。我想這應該是最重要的整數是有符號的整數,其餘的將是無符號的,以表示數字的剩餘部分。 (這是半有

    3熱度

    2回答

    vector<bool> working_lattice(box.rect.length * box.rect.height * box.rect.width); 如何使用上述聲明風格訪問working_lattice[1][5][3]?

    3熱度

    1回答

    會有人請還跟我感謝你解釋一下這個功能! int overflow(int x, int y) { int result, non_overflow, overflow, result_sign, mask; result = x + y; result_sign = result >> 31; //Need help starting from here... I

    1熱度

    3回答

    我需要做的是使用整數算術將分數轉換爲浮點數。所需的小數位數被指定爲變量DECIMALS。每個分數都包含在一個整數元組中,例如(1, 3)。第一項是分子,第二項是分母。這些元組包含在名爲fractions的列表中。 這是到目前爲止我的代碼: fractions = [(1,7), (2,3), (22,7), (7001,7), (9,3), (611951,611953), (1,11), (1,

    4熱度

    2回答

    我在需要快速運行的Arduino上編寫一些代碼,並對整數百分比進行粗略近似。 例如,給定一個數字,我想找到它的90%,或70%或30%等。這樣做的顯而易見的方法是乘以一個浮點例如。 x * 0.9;或x * 0.3;但是因爲我需要速度,我想避免浮點計算。如果我只是分兩個冪,我會做一個按位移,但是有沒有類似的技術用於使用整數近似90%,80%等?

    1熱度

    2回答

    我有式: X = (a * X)/b; 這用於重新縮放X與a/b。但是X是16位無符號整數,並且與a相乘可能很容易溢出。我怎樣才能用精確的結果使用整數進行計算。 我當然可以使用浮點算法,但是這種操作很有可能在沒有浮點硬件的處理器上工作。 編輯:我忘了說a和b都是32位無符號整數。 那麼我的答案是右移a和b,直到它們都適合16位。這樣a * X是32位,最後的計算是準確的。

    4熱度

    3回答

    有一些算法在「非常好」意味着最小化浮點算術運算量以利於整數算術的假設下「非常好」地解決問題。例如Bresenham's line algorithm用於確定要填充哪些像素以便在畫布上繪製一條線:這個人實際上只用一些簡單的整數算術就可以完成整個過程。 這種事情在許多情況下顯然是很好的。但是值得關注的是在javascript中需要大量浮點運算的操作嗎?據我所知,就語言規範而言,一切都是十進制數。我想知

    0熱度

    1回答

    我試圖將格式爲"yyyy-mm-dd"的時間戳轉換爲整數會計周。目前,我的算法是4(k-1)+ floor(d/7)+1,其中k是整數月份,d是月份的整數日期。週六開始新的財政周。 這有一些缺陷,是不正確的。例如考慮2012年1月28日星期六: 我的算法計算5(這是正確的)。 接下來考慮,週五2月3日: 我的算法計算5(這是正確的)。 現在考慮2月4日星期六。 我的算法計算5(這是不正確的)。 看