查看“︁除以二”︁的源代码
←
除以二
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[Image:Five and six divide by two.svg|thumb|300px|除以二是一種將數分成兩個相等的數的運算動作,例如,5可以分成2個<math>2\frac{1}{2}</math>;6可以分成2個3]] [[Image:Divide 14 Rabbits by 2.svg|thumb|除以二即將一集合中的物件分成兩等分。例如14隻兔子,平分成兩組,每組有7隻兔子]] 在[[數學]]中,'''除以二'''是一種運算動作,即[[被除數]]的[[除數]]([[分母]])是[[2|二]]、或[[乘以]][[二分之一]]的動作,又可稱為'''半分'''(dimidiation)或'''平分'''(halving)<ref>{{citation|title=The Earliest arithmetics in English|volume=118|series=Early English Text Society|first=Robert|last=Steele|publisher=Oxford University Press|year=1922|page=82}}.</ref>。最早將[[除法|除以]]二視為一種獨立運算的是[[古埃及人]],其用於{{link-en|古埃及乘法演算法|Ancient_Egyptian_multiplication}}中的一個基本步驟<ref name="Chabert1999"/>。一直到近代,除以二都有被單獨當作為一種運算方式看待的情況<ref name="Jackson1906"/><ref name="Waters1929"/>。而在現代電腦[[電腦程式設計|程式設計]]中,由於大部分的情況下,除以二可以使用邏輯位移運算取代,因此也用於[[編譯器最佳化]]的技術中<ref name="WC00"/>。 == 歷史 == 將除以二視為一個特殊的運算方式來處理[[乘法]]及除法的做法,最早可以追溯到[[古埃及人]],其將除以二作為{{link-en|古埃及乘法演算法|Ancient_Egyptian_multiplication}}中的一個基本步驟<ref name="Chabert1999">{{citation|title=A history of algorithms: from the pebble to the microchip|first1=Jean-Luc|last1=Chabert|first2=Évelyne|last2=Barbin|publisher=Springer-Verlag|year=1999|isbn=978-3-540-63369-3|page=16}}.</ref>。 一直到十六世紀,仍有一些數學家將除以二視為一個獨立的運算方式<ref name="Jackson1906">{{citation|title=The educational significance of sixteenth century arithmetic from the point of view of the present time|volume=8|series=Contributions to education|first=Lambert Lincoln|last=Jackson|publisher=Columbia University|year=1906|page=76}}.</ref><ref name="Waters1929">{{citation|title=A Fifteenth Century French Algorism from Liége|journal=Isis|volume=12|issue=2|year=1929|first=E. G. R.|last=Waters|pages=194–236|jstor=224785|doi=10.1086/346408}}.</ref>。 而在[[十進制]]算術、[[計算機科學]]的[[二進制]]及其他偶數進制算術中,除以二的計算相較於被除數的除數為其他數的除法而言,相對簡單,因此在現代的[[電腦程式設計]]中,除以二也會被視為一個獨立的[[運算子]]<ref name="WC00">{{citation|title=Software optimization for high-performance computing|first1=Kevin R.|last1=Wadleigh|first2=Isom L.|last2=Crawford|publisher=Prentice Hall|year=2000|page=92|isbn=978-0-13-017008-8}}.</ref>。 == 二進制 == [[File:Rotate right logically.svg|thumb|250px|圖展示了23({{進制|2|23|sub=3}})使用邏輯右移來實現除以二的過程,得到了商為11({{進制|2|11|sub=3}})]] 在[[二進制]]算術中,除以二可以透過移位運算中的右移運算子來完成,即將二進位數中的每一位全部都向右移動一位,此技術應用於[[編譯器最佳化]]中的[[強度折減]]技術<ref>{{cite web|last=Granlund|first=Torbjörn|title=Division by Invariant Integers Using Multiplication|url=http://gmplib.org/~tege/divcnst-pldi94.pdf|author2=Peter L. Montgomery|accessdate=2019-04-22|archive-date=2019-06-06|archive-url=https://web.archive.org/web/20190606211506/https://gmplib.org/~tege/divcnst-pldi94.pdf|dead-url=no}}</ref>。例如將105除以二,先將105表示為二進制,即1101001,接著將所有位元向右移一位,溢位的部分1被捨棄,即得到商110100,對應的十進制數值為52。類似地,此操作可以套用到所有除以二的正整數次方的情形,當被除數的除數(分母)為<math>2^k</math>時,其做法為將該數的所有位數右移<math>k</math>位來完成,例如欲將[[24|二十四]]除以八,24在二進制中計為11000,而8為2的[[立方數|三次冪]],將11000向右位移3位得11,十進制為3,則得到商為3,即完成{{計算結果|24/8}}的運算。由於位移運算通常比[[除法]]來得快,因此以這種透過位移運算取代部分除法運用在[[編譯器]]最佳化中是有幫助的<ref name="WC00"/>。但是,出於[[程式碼]]的[[可移植性]]和[[程式可讀性|可讀性]]的考慮,通常仍然會在程式碼中以除法表示,替換為移位運算應由編譯器來完成<ref>{{citation|title=Write portable code: an introduction to developing software for multiple platforms|first=Brian|last=Hook|publisher=No Starch Press|year=2005|isbn=978-1-59327-056-8|page=133}}.</ref>。不過,在[[有符號數處理]]中,上述做法並不能確保總是正確。一般[[邏輯右移]]一位可以將該數除以二,若除不盡總是會向下取整,但在某些程式語言中,有符號二進制整數的除法會向0舍入,也就是說,若一整數是負的,除不盡的狀況將會向上取整。 === 除以2<sup>k</sup> === {{main|邏輯右移}}{{anchor|除以2^k|除以二的冪|除以二指數|除以2指數|除以2的乘方}} 邏輯右移可以處理除數(或[[分母]])為任意[[二的冪]]的除法,即除以<math>2^k</math>。例如{{visible anchor|除以四|除以4|除以四}}、{{visible anchor|除以八|除以8|除以八}}等。更一般地,在特定底數<math>base</math>的進位制中,除數(或分母)為任意<math>base^k</math>的除法(k為整數)皆可以透過將數字位數向右移k位來完成。例如{{visible anchor|除以十|除以10|除以十}},由於普遍的數字計法是透過[[十進制]]表達,因此可以直接將數字位數向右移1位來完成除以十的操作。例如230除以十,將230向右移一位,得23,即{{計算結果|230/10}}。 == 二進制浮點數 == 在二進制[[浮點數]]算術中,在不要求結果不為{{link-ja|非正規化数|非正規化数}}的情況下,由於其是由二進制表示,因此可透過將浮點數[[科學記號]]的[[指數]]部分減一來完成除以二的動作<ref name="book2004computer">{{Cite book|title=Computer Architecture and Organization: Design Principles and Applications|isbn=9780070532366|url=https://books.google.com.tw/books?id=YT74AkSrj4sC|year=2004|publisher=Tata McGraw-Hill|page=170|access-date=2019-04-23|archive-date=2019-08-18|archive-url=https://web.archive.org/web/20190818141837/https://books.google.com.tw/books?id=YT74AkSrj4sC|dead-url=no}}</ref>。許多程式語言會單獨專門為浮點數提供除以二的冪之函數,例如[[Java]]有提供一個名為<code>java.lang.Math.scalb</code>的函數來計算二的冪之比<ref>{{cite web |url=http://java.sun.com/javase/6/docs/api/java/lang/Math.html#scalb(double,%20int) |title=Math.scalb |work=Java Platform Standard Ed. 6 |accessdate=2009-10-11 |archive-date=2009-08-29 |archive-url=https://web.archive.org/web/20090829081338/http://java.sun.com/javase/6/docs/api/java/lang/Math.html#scalb(double,%20int) |dead-url=no }}</ref>;而[[C語言]]也有類似功能的函數,例如<code>ldexp</code><ref>{{citation |title=Programming languages — C, International Standard ISO/IEC 9899:1999 }}, Section 7.12.6.6.</ref>。 == 十進制 == 在十進制中,可透過下列演算法將任意整數除以二,其也可以作為定義底數為偶數之進位制中將任意數除以二的模型。其做法如下: #寫下整數N,並於左邊補上1個0。 #針對N的每一個位數,根據下列表格寫下數字則可得到除以二的商。 {| class="wikitable" |- ! 第一位數為 | 偶數|| 偶數|| 偶數|| 偶數|| 偶數 | 奇數|| 奇數|| 奇數|| 奇數|| 奇數 |- ! 下一位數 | 0 或 1 || 2 或 3 || 4 或 5 || 6 或 7 || 8 或 9 | 0 或 1 || 2 或 3 || 4 或 5 || 6 或 7 || 8 或 9 |- ! 寫下 | 0 || 1 || 2 || 3 || 4 | 5 || 6 || 7 || 8 || 9 |} 例如: 1738除以2=? # 寫下 01738。 # 01:偶數位數0後面跟著1,寫下0; # 17:奇數位數1後面跟著7, 寫下8; # 73:奇數位數7後面跟著3, 寫下6; # 38:奇數位數3後面跟著8, 寫下9; # 商為0869。 從示例中可以看出[[0的奇偶性|0是偶數]]。此外,若N的最後一位是奇數,則需再將0.5加到結果中。 == 奇偶性 == [[File:Parity of 5 and 6 Cuisenaire rods.png|275px|thumb|圖中使用[[古氏積木]]展示了整數的奇偶性:對於奇數5,無法使用2個相同長度的古氏積木排出;而6可以可以均勻分為2個3或是用3個長度為2的積木排出]] {{Main|奇偶性 (数学)}} 對整數而言,分母為2的除法與一數的奇偶性相關:可被<math>2</math>整除者是[[偶數]](包括<math>2</math>自己與<math>0</math>),不可被<math>2</math>整除者是[[奇數]]。 == 其他用途 == 除以二可以用於某些速算法,例如某數乘以五可以透過先將該數除以二再乘以十來完成<ref name="book2018优等生必学的速算技巧大全">{{Cite web |title=优等生必学的速算技巧大全 |isbn=9787302463214 |url=https://books.google.com.tw/books?id=iwBLDwAAQBAJ |year=2018 |publisher=清華大學出版社 |accessdate=2019-04-24 |archive-date=2019-08-18 |archive-url=https://web.archive.org/web/20190818141840/https://books.google.com.tw/books?id=iwBLDwAAQBAJ |dead-url=no }}</ref>,例如25乘以五,首先將25除以2得12.5,再乘以10得到結果為125。 == 參見 == *[[二分之一]]:[[1|一]]除以二的結果 *[[中位數]]:除以二對應的統計學的概念:將一組數值平分為兩個相等子集的值 *[[平分線]]:除以二對應的幾何學的概念:將一幾何物件平分為兩等分的線,又可分為[[垂直平分線]]和[[角平分線]] *[[除以零]]:另一個會被單獨討論的除法,特點在其結果難以被定義。 == 參考文獻 == {{Reflist}} [[Category:除法]] [[Category:分數]] [[Category:二]]
该页面使用的模板:
Template:Anchor
(
查看源代码
)
Template:Citation
(
查看源代码
)
Template:Cite book
(
查看源代码
)
Template:Cite web
(
查看源代码
)
Template:Link-en
(
查看源代码
)
Template:Link-ja
(
查看源代码
)
Template:Main
(
查看源代码
)
Template:Reflist
(
查看源代码
)
Template:Visible anchor
(
查看源代码
)
Template:計算結果
(
查看源代码
)
Template:進制
(
查看源代码
)
返回
除以二
。
导航菜单
个人工具
登录
命名空间
页面
讨论
不转换
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
特殊页面
工具
链入页面
相关更改
页面信息