第9章 Decimal之惑(1/2)
数度归宗:大明算学馆的进制秘案
一、钦天监异数,decimal之惑
万历二十三年,南京钦天监的算学馆内,铜灯彻夜不熄。算学博士徐光启正对着案几上的一卷西洋手稿蹙眉沉思,手稿上“decimal 65.625”的字样,如同一个难解的谜题,困扰了他多日。
这卷手稿是意大利传教士利玛窦从欧洲带来的,上面记载着西洋算学的“进制转换之术”。利玛窦在与徐光启合着《几何原本》时,偶然提及“天下之数,不止十进制一种,二进制、十六进制亦有妙用”,并留下了这个神秘的数字“65.625”,称其为“数之枢纽”,可贯通三种进制。
徐光启精通《九章算术》,对十进制运算了如指掌,却从未听闻“二进制”“十六进制”的说法。他尝试用十进制的逻辑推演,将65.625拆分为60+5+0.6+0.025,却始终无法触及二进制与十六进制的核心。
“徐博士,夜深了,何不歇息片刻?”利玛窦推门而入,手中捧着一盏西洋玻璃灯,灯光照亮了手稿上的符号。
徐光启起身拱手:“利先生,此数‘65.625’究竟有何玄机?二进制、十六进制又该如何推演?”
利玛窦微微一笑,将玻璃灯放在案几上,指着手稿解释:“十进制以‘十’为进,二进制以‘二’为进,十六进制以‘十六’为进。如65.625,在二进制中是‘.101’,在十六进制中是‘41.a’,只是西洋符号过于晦涩,需转化为大明算学可解之法。”
徐光启闻言,眼中闪过一丝灵光:“先生之意,是如同度量衡换算一般,找到不同进制的‘换算之规’?”
“正是!”利玛窦点头,“十进制转二进制,整数部分‘除二取余’,小数部分‘乘二取整’;转十六进制,整数部分‘除十六取余’,小数部分‘乘十六取整’。只是这‘取余’‘取整’的推演过程,需耗费大量心神,且需验证其准确性。”
徐光启当即下令,封闭算学馆,召集馆内最顶尖的算吏,组成“进制推演小组”,以65.625为引,探寻二进制与十六进制的转换之术。他深知,此事若成,必将为大明算学开辟新的天地,甚至能助力天文历法、工程建造的精准运算。
二、除二取余,binary之径
推演工作从十进制转二进制开始。徐光启根据利玛窦的提示,将转换之法拆解为“整数部分”与“小数部分”,分别推演。
整数部分“除二取余”是第一步。徐光启取65为基数,命算吏用算筹演算:“65除以二,商32,余数1;32除以二,商16,余数0;16除以二,商8,余数0;8除以二,商4,余数0;4除以二,商2,余数0;2除以二,商1,余数0;1除以二,商0,余数1。”
算吏们按顺序记录余数,得到“1、0、0、0、0、0、1”。徐光启凝视着这串数字,陷入沉思:“余数需逆序排列,方可得到二进制的整数部分。如此一来,65的二进制整数,便是‘’?”
利玛窦在一旁验证,点头称是:“徐博士所言极是。二进制中,每一位代表‘二的幂次’,从右往左依次为2?、21、22……,便是2?+2?=64+1=65,分毫不差。”
整数部分的成功,让算吏们士气大振。接下来是小数部分“乘二取整”,目标是0.625。徐光启亲自演算:“0.625乘二,得1.25,取整数1;剩余0.25乘二,得0.5,取整数0;剩余0.5乘二,得1.0,取整数1。”
算吏们按顺序记录整数,得到“1、0、1”。徐光启将整数部分与小数部分结合,得到“.101”。他反复演算验证:“.101,整数部分65,小数部分1x2?1+0x2?2+1x2?3=0.5+0+0.125=0.625,正是65.625!”
算学馆内一片欢腾,算吏们纷纷感叹西洋算学的精妙。可徐光启却并未满足,他深知,二进制的转换只是第一步,十六进制的推演,难度更大——十六进制中,10至15需用字母代替,这与大明算学的数字体系截然不同。
利玛窦似乎看穿了他的心思,取出一枚西洋银币,上面刻着0至9的数字与a、b、c、d、e、f的符号:“徐博士,十六进制中,10对应a,11对应b……15对应f。65.625转十六进制,需沿用‘除基取余’‘乘基取整’之法,只是基数换为十六。”
徐光启接过银币,凝视着上面的符号,心中已有了推演的蓝图。
三、乘十六取整,hexadecimal之秘
十六进制的推演,从整数部分“除十六取余”开始。徐光启取65为基数,用算筹演算:“65除以十六,商4,余数1;4除以十六,商0,余数4。”
算吏们逆序排列余数,得到“4、1”。徐光启沉吟道:“如此一来,65的十六进制整数部分,便是‘41’?”
本章未完,点击下一页继续阅读。