text: 在數學中，除以二是一種運算動作，即被除數的除數。最早將除以二視為一種獨立運算的是古埃及人，其用於中的一個基本步驟。一直到近代，除以二都有被單獨當作為一種運算方式看待的情況。而在現代電腦程式設計中，由於大部分的情況下，除以二可以使用邏輯位移運算取代，因此也用於編譯器最佳化的技術中。歷史.將除以二視為一個特殊的運算方式來處理乘法及除法的做法，最早可以追溯到古埃及人，其將除以二作為中的一個基本步驟。一直到十六世紀，仍有一些數學家將除以二視為一個獨立的運算方式。而在十進位制算術、電腦科學的二進位制及其他偶數進位制算術中，除以二的計算相較於被除數的除數為其他數的除法而言，相對簡單，因此在現代的電腦程式設計中，除以二也會被視為一個獨立的運運算元。二進位制.在二進位制算術中，除以二可以透過移位運算中的右移運運算元來完成，即將二進位數中的每一位全部都向右移動一位，此技術應用於編譯器最佳化中的強度折減技術。例如將105除以二，先將105表示為二進位制，即1101001，接著將所有位元向右移一位，溢位的部分1被捨棄，即得到商110100，對應的十進位制數值為52。類似地，此操作可以套用到所有除以二的正整數次方的情形，當被除數的除數為formula_1時，其做法為將該數的所有位數右移formula_2位來完成，例如欲將二十四除以八，24在二進制中計為11000，而8為2的三次冪，將11000向右位移3位得11，十進位制為3，則得到商為3，即完成的運算。由於位移運算通常比除法來得快，因此以這種透過位移運算取代部分除法運用在編譯器最佳化中是有幫助的。但是，出於程式碼的可移植性和可讀性的考慮，通常仍然會在程式碼中以除法表示，替換為移位運算應由編譯器來完成。不過，在有符號數處理中，上述做法並不能確保總是正確。一般邏輯右移一位可以將該數除以二，若除不盡總是會向下取整，但在某些程式語言中，有符號二進位制整數的除法會向0舍入，也就是說，若一整數是負的，除不盡的狀況將會向上取整。除以formula_3.邏輯右移可以處理除數皆可以透過將數字位數向右移k位來完成。例如除以十，由於普遍的數字計法是透過十進製表達，因此可以直接將數字位數向右移1位來完成除以十的操作。例如230除以十，將230向右移一位，得23，即。二進位制浮點數.在二進位制浮點數算術中，在不要求結果不為的情況下，由於其是由二進製表示，因此可透過將浮點數科學記號的指數部分減一來完成除以二的動作。許多程式語言會單獨專門為浮點數提供除以二的冪之函式，例如Java有提供一個名為codice_1的函式來計算二的冪之比；而C語言也有類似功能的函式，例如codice_2。十進位制.在十進制中，可透過下列演演算法將任意整數除以二，其也可以作為定義底數為偶數之進位制中將任意數除以二的模型。其做法如下：例如： 1738除以2=?從示例中可以看出0是偶數。此外，若N的最後一位是奇數，則需再將0.5加到結果中。奇偶性.對整數而言，分母為2的除法與一數的奇偶性相關：可被formula_7整除者是偶數，不可被formula_7整除者是奇數。其他用途.除以二可以用於某些速演算法，例如某數乘以五可以透過先將該數除以二再乘以十來完成，例如25乘以五，首先將25除以2得12.5，再乘以10得到結果為125。
metadata: erhwenkuo/wikipedia-zhtw
metadata: 除以二
metadata: https://zh.wikipedia.org/wiki?curid=6559947