不是玩笑:十根手指決定了十進位成為國際通用計數規則

2020-12-16 大百科全書資料庫

人類早期為了數獵物、果實等物體的需要,逐漸產生了數。隨著生產力的不斷發展,人們在實踐中接觸的數目越來越多,也越來越大,因而需要給所有自然數命名。但是自然數有無限多個,如果對於每一個自然數都給一個獨立的名稱,不僅不方便,而且也不可能,因而產生了用不太多的數字符號來表示任意自然數的要求,於是,在產生記數符號的過程中,逐漸形成了不同的進位制度。

十進位的起源

世界上的多數民族都不約而同地採用了「滿十進一」的十進位。十進位,以及由它衍生出來的百進位、千進位等共同規範了我們的算術體系。時至今日,它已是我們生活中最不可缺少的一部分。我國使用十進位的歷史,可以一直追溯到商代。

商代中期已產生一套十進位數字和記數法,從已發現的商代陶文和甲骨文中,我們可以看到當時已能夠用一、二、三、四、五、六、七、八、九、十、百、千、萬等十三個數字,記十萬以內的自然數。這些記數文字的形狀和寫法在後世雖有所變化,但這種記數方法卻一直被沿襲,並日趨完善。

周代金文的紀數法繼承了商代的十進位, 又有明顯的進步,十進數量級符號有十、百、千、萬、億,如西周金文「伐鬼方……俘萬三千八十一人」,「武王遂徵四方,俘人三億萬有二百三十」,出現了位值記數,例如 「俘牛三百五十五「,其中三百五十五寫成「三全XX」,前面的「全」是金文的「百」,後面兩個XX是五十五,省去了「十」,出現了位置概念,但尚未形成完整的位值制。春秋戰國時期出現了嚴格的十進位制籌算記數,也發明了用於十進位制乘法、除法的九九表。

根據公元4世紀的《孫子算經》的記載,任何數都是由九個縱排數字和九個橫排數字按個、百、萬等用縱籌,十、千等用橫籌來表示,零用空位表示。這是完整的十進位值制。不僅如此,藉助於位值制,用算籌還可以表示分數、小數、負數、二次和高次方程、線性方程組、多元高次方程組等。算籌和位值制奠定了中國數學長於計算的基礎。

瑪雅數字

除了中國之外,在其他地方也出現了類似的十進位記數法,比如古印度,古希臘等等。亞里斯多德曾經說過,人類普遍使用十進位,只不過是因為人生來就有十根手指。與此相對的,已經退出歷史舞臺的瑪雅數學使用的是二十進位,考古學家猜測這是因為他們在數數的時候除了手指,還加上了腳趾頭的緣故。英語單詞Digit(數字)可以指手指或腳趾,單詞five(五)和單詞fist(拳頭)有相同的詞根,出現這種情況也並不是巧合。

在純數學的層面上說,十進位因子太少,只有2,5兩個,而十二進位,數碼只比十進位多兩個,因子卻有2,3,4,6四個。從這個層面來看十進位並不是最優秀的進位,但是因為在生理上具有普適的優點,方便理解,也最容易被不同地方的人接受,所以比起十二進位,二十進位,六十進位這些方法,十進位制的記數法堪稱古代世界最流行,也是最先進、最科學的記數法,對世界科學和文化的發展有著不可估量的作用。

不同的進位制記數法

這個世界上絕不是僅有十進位。在數學發展史上,不同時代,不同地域也使用不同的進位法。比如電腦使用的二進位,星期是七進位,月份是十二進位,時間是六十進位等等。

二進位的寫法只有兩種數碼:0和1。它是逢二進一,借一當二。與十進位相比,二進位最簡單,只需要兩個基本數值,但是使用起來卻很麻煩。試想原始人打獵,獲得三個獵物就得進一位,獲得五個就又得進一位,進位頻繁會造成位數太多,計算容易發生錯誤。

八進位是逢八進一,也就是可以用0,1,2,3,4,5,6,7表示個位,當到8的時候變成了兩位數10,我們一般在八進位數10前面加上0,八進位數的10就變成了010了,010表示的是8。八進位是有其優越性的,因為它是二的倍數,又是二的倍數的倍數,似乎優於十進位;它之所以沒能流行,還是因為人類的習慣。

十六進位是逢十六進一,也就是可以用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F表示個位,其中A,B,C,D,E,F分別表示十進位中的10,11,12,13,14,15,當數到16的時候就要進位了,為了和十進位區別,用0x10表示,0x10表示的不是10,而是16。十六進位在中國近代還在使用,只限於重量單位,十六兩為一斤。可能的來源是這樣:把一斤重的東西平分一次就是二分之一斤,再繼續平分就是四分之一斤,再繼續平分就是八分之一斤,繼續分就是十六分之一斤,也就是一兩了。

各種進位與十進位的轉換

十進位有以下兩個特點:使用的數字有 0、1、2、3、4、5、6、7、8、9 共 10 種。數位有一定的意義,從右往左分別表示個位、十位、百位、千位……

接下來我們以2503這個數為例。把2503拆分,是2個1000、5個100、0個10和3個3累加的結果。因此,我們可以把2503寫成以下形式:

千位、百位、十位、個位,分別可以稱作這個數字的(10的3次方)的位、(10的2次方)的位、(10的1次方)的位、(10的0次方)的位。十進位記數法的數位全都是(10的n次方)的形式。這個10便可以被稱為十進位記數法的基數或底。

在十進位記數法的基礎上類推,很快就可以掌握二進位的規則。二進位使用的數字只有0、1兩種。從右往左分別表示1位、2位、4位、8位……

這裡出現的8、4、2、1,分別表示

所以在二進位中,基數為2,各個數位以2的n次方的形式表現。因此,我們可以把二進位下的1100寫成以下形式:

二進位轉十進位

如此計算,就能將二進位記數法的1100,轉換為十進位記數法規則下的數字:

十進位轉二進位

那麼,十進位要怎麼轉化為二進位呢?其實很簡單:除就行了!

我們將十進位下的2503轉換為二進位記數法,如下圖所示,我們需要將2503反覆地除以2,並觀察餘數為「1」還是「0」。

隨後再將每步所得的餘數的列(1和0的列)逆向排列,由此就可以得到這個數二進位的表示。結果就是100111000111。

在十進位中2503隻有4位,而在二進位中要表達同樣的數則是12位數字。

有了十進位和二進位做鋪墊,我們可以按圖索驥,得出八進位記數法的特徵如下:使用的數字有0、1、2、3、4、5、6、7共8種。

從右往左分別為(8的0次方)的位、(8的1次方)的位、(8的2次方)的位、(8的3次方)的位……(基數是8)

八進位轉十進位

拿八進位數226舉例(由右向左依次乘以8的n次冪,n從零開始),轉成十進位數就是:

十進位到八進位

十進位數轉成八進位數只需要除8取餘數 最後把餘數倒過來。

比如十進位數字2456 轉化成八進位數字:

2456÷8=307,餘0;

307÷8=38,餘3;

38÷8=4,餘6;

4÷8=0,餘4。

將所有餘數倒序相連,得到結果:4630。

因此十進位的2456轉換為八進位結果為4630。

十六進位記數法的特徵如下:

使用的數字有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16種。

從右往左分別為(16的0次方)的位、(16的1次方)的位、(16的2次方)的位、(16的3次方)的位……(基數是16)

十六進位轉十進位

拿十六進位數96來舉例(由右向左依次乘以16的n次冪,n從零開始)

9×161+6×160=150

所以十六進位數96轉化成十進位數就是150

十進位轉十六進位

同樣十進位數轉成十六進位數就要除16再倒著取餘數。

比如說:十進位數1610轉換成十六進位

1610÷16=100……10(A);

100÷16= 6……4;

6 ÷16= 0……6;

因此十進位1610=十六進位64A

由上面的例子可以總結出N進位記數法的特徵如下:

使用的數字有0,1,2,3,…,N-1,共N種。

從右往左分別為(N的0次方)的位、(N的1次方)的位、(N的2次方)的位、(N的3次方)的位……(基數是N)

轉換規則就是

n進位轉換為十進位:

n進位上的每一個數字乘以位權再把它們全部加起來。(位權是指數制中每一固定位置對應的單位值)

十進位轉換為 n進位:

整數部分不停地除以n,直到商為0,記錄下每次的餘數,從最後一個餘數開始逆向排列。

相關焦點

  • 不是玩笑:十根手指決定了十進位成為國際通用記數規則
    人的手指就是最早的計數工具。隨著生產力的不斷發展,人們在實踐中接觸的數目越來越多,也越來越大,因而需要給所有自然數命名。但是自然數有無限多個,如果對於每一個自然數都給一個獨立的名稱,不僅不方便,而且也不可能,因而產生了用不太多的數字符號來表示任意自然數的要求,於是,在產生記數符號的過程中,逐漸形成了不同的進位制度。
  • 為什麼時間是12進位,十進位不是很方便嗎?毫秒又為什麼是十進位
    就現在來說,十進位是公認的基礎計數原則,畢竟人類只有十根手指頭,十進位用的順手,而且整數進位讓人好計算一些,不需要依靠其他工具,對於數學不好的西方來說尤為重要。那麼,我們使用最多的是時間計數為什麼是十二進位呢?這事說來就話長了。
  • 為什麼我們都是用「十進位」,而不是「六或八進位」?是因為人類有...
    為什麼我們都是用「十進位」? 說實在的,現代人誰都沒有辦法穿越回到起初的時候,所以這個問題可能永遠誤解。目前的主流觀點確實是因為人類有十指。但我覺得這並沒有觸及到問題的本質。難道古代真的只有十進位麼?顯然不是! 寸、尺、丈是嚴格按照十進位的,這不是人為定義,而是基於人體組織的某個比例關係。
  • 10進位-屈指可數的計數方式
    其實在結繩計數中,隨著記載數目的不斷增大進位制就開始出現了。現在人們日常生活中所不可或離的十進位制,就是古代中國的一個足以改變世界的發明。經考證,中國採用十進位值制的年份可上溯到商代。從現在已經被發現的商古代不同的計數系統中,可以看到在當時已經可以使用一、二、三、四、五、六、七、八、九、十、百、千、萬等13個數字,來記錄10萬以內的任何自然數。
  • scratch+程小奔機器人實現「進位轉換」(十進位轉二進位)
    進位轉換圖【原創】文章全部內容皆為作者原創,如有轉載請註明出處我們人類有十根手指,通常情況下我們在生活中的計數方式為「十進位」(即0-9),也就說滿十進一;而在計算機的世界裡,基礎電路只有「開/關(通/斷)」(即0/1)兩種情況,這與誕生幾千年的二進位不謀而合;例如:二進位數字110,表達的就是十進位中的6;二進位數字1111,表達的就是十進位中的15。
  • 吳國平:除了十進位, 人類文明史上還有哪些進位算法?
    當我們看到像1、25、356……這些耳熟能詳的數字,大家都知道這是學習數學的基礎,代表全世界通用的十進位,即滿十進一,滿二十進二,以此類推。世界通用的十進位,對於現代文明的我們看來是那麼地熟悉自然。在人類文明進程過程中,算法並不是就只有十進位一種,在很多文明體系中出現各種各樣的算法,如二進位、二十進位等等。
  • 十進位,十二進位,六十進位從何而來?阿拉伯人成就了文藝復興?
    還有這個樣子的但當這些符號還沒有進化為文字之時,億萬年前的穴居人就有了數的概念;伴隨著狩獵,農耕與畜牧,人類發展出了刻痕計數,結繩計數和石子計數這就是最早的刻痕計數。數字最終誕生但在此之前,我們需要先約定進位,雖然十進位看似自然而然;但3進位,4進位,5進位都曾出現在人類文明的幼年期;但絕大部分文明最後都採用了十進位,帝師亞里斯多德將其歸因於人類天生都擁有十根手指。
  • 十進位數的編碼與運算
    4位基2碼有16種不同的組合,怎樣從中選擇出10個組合來表示十進位數位的0-9,有非常多的可行方案,下面介紹其中的最常用的幾種。  ① 十進位有權碼  是指表示一個十進位數位的4位基2碼的每一位有確定的位權。
  • C語言編程預備知識-進位和常量
    C語言編程預備知識-進位和常量什麼是進位?進位也就是進位計數制,是人為定義的帶進位的計數方法進位制計數法是一種記數方式,故亦稱進位記數法計數法,可以用有限的數字符號代表所有的數值。————十二進位一小時六十分鐘————六十進位電腦中的數據————二進位由於人類解剖學的特點,雙手共有十根手指,故在人類自發採用的進位制中,十進位是使用最為普遍的一種。
  • 你可能不知道,二進位比十進位更簡單
    在世界各文明獨立發展的數學中,出現過二十進位、六十進位、十六進位、十進位等,其中最廣泛採用的數制是十進位。亞里斯多德曾對此分析,可能是因為人有十個手指頭的緣故。直到現在,小朋友們學算術時還經常掰著手指頭算簡單的加減運算。
  • 四年級數學上冊第一單元《從結繩計數說起》老師:古人是如何計數
    通過閱讀了解計數方法的發展歷史,來感受數學知識與日常生活的密切聯繫,並了解、掌握自然數的特點。下面我們一起學習《從結繩計數說起》。問題⑴導入 你知道古人是怎麼計數的嗎?知識講解1.計數產生的意義人們在勞動生活中有了計數的需要,比如數人數、數物體的個數和數獵物的數量等,因此產生了各種計數方式。2.計數方法的發展⑴遠古時代的計數方式。①石子計數:人們為了記錄捕獲獵物的多少,就將石子和捕獲的獵物一一對應擺放。石子的數量就是獵物的數量。
  • 計數單位:原來有那麼多不常用的計數單位,不可思議居然也是?!
    我們日常生活中最常使用的都是十進位(很大一部分原因可能是人生來有十個手指),自古以來十進位也是眾多文明中最主要的進位制,而我國是最早使用十進位的國家,早在商朝就已經使用,出土的文物中都已經可以記十萬以內的任何自然數了。除此之外還有二進位、八進位、十六進位、二十進位和六十進位。
  • 計算機二進位祖宗是西方人?中國道教一張八卦圖千年前早已解釋!
    1十進位PK二進位牛頓與萊布尼茨的對話牛頓實在是看不下去了,你丫為了騙「科研經費」,又開始忽悠領導了。作為萊布尼茨的老對手,牛頓這次放出話來要正面KO死萊布尼茨。老祖宗傳承下來的十進位不是用得好好的嗎?
  • 程式設計師的情商:二進位電腦能識別,十進位人易懂,十六進位能做啥
    程式設計師的情商:二進位電腦能識別,十進位人易懂,十六進位能做啥?假如你有一個程式設計師的女朋友,突然給你發了一串數據(68656c6c6f 62616279),你知道什麼意思嗎?該怎麼回她呢?計算機專業的同學,在學習編程中,尤其是初學者,經常有這樣的疑問,一般人只認識十進位(520),電腦只能識別二進位(1000001001),那十六進位(208)能做什麼的?為什麼還要在中間加上一個十六進位呢,是不是多此一舉嗎?本來初學編程,對二進位就不熟悉,要花不少時間和理解來學習理解,在學個十六進位不是很多餘嗎?
  • 二進位、十進位、八進位、十六進位間的相互轉換函數
    二進位、十進位、八進位、十六進位間的相互轉換函數1、輸入任意一個十進位的整數,將其分別轉換為二進位、八進位、十六進位。{int num;char a[39];//定義一個字符數組,用於存儲字符串cout<<"Entre num:"<<endl;cin>>num;cout<<"二進位
  • 計算機內部使用什麼方法計數?
    計算機內部使用什麼方法計數?答案是二進位數。不同於常見的十進位數,計算技術中廣泛採用二進位數。這種數值的基數為2,採用「逢二進一」,大家可以對比十進位數的「逢十進一」進行類比。十進位共有九個數字,0,1,2,3,4,5,6,7,8,9。二進位則只有兩個數字,0和1。十進位的個位數,從0加1開始,一直加到9,再加1,就向前進一位,變為了「10」。
  • 關於二進位、十進位、八進位、十六進位數據轉換計算方法詳細總結
    ) 注意他們的讀數方向 因此,我們從上面的方法,我們可以得出十進位數168.125轉換為二進位為10101000.001,或者十進位數轉換為二進位數約等於10101000.0111。(2) 二進位轉換為十進位 不分整數和小數部分 方法:按權相加法,即將二進位每位上的數乘以權,然後相加之和即是十進位數。例 將二進位數101.101轉換為十進位數。
  • 使用Windows 10內置的計算器,可快速將十進位數轉換為二進位數
    接下來我們需要了解什麼是二進位和二進位數?20世紀被稱作第三次科技革命 的重要標誌之一是計算機的發明與應用,因為數字計算機只能識別和處理由0或1符號串組成的代碼,二進位正是計算技術中廣泛採用的一種數制,由德國數理哲學大師萊布尼茨於1679年發明。二進位數是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」,借位規則是「借一當二」。
  • 二進位轉換為十進位和十進位轉換為二進位的方法
    各位小夥伴們大家好,在之前的文章中小編也介紹了關於二進位轉十進位的方法,這次小編知道了一個更簡單的方法,具體如下:比如我們要把28轉為二進位:28的二進位了。11100轉十進位還是從左到右,第一個數字1後面有4個數字,那麼就是2的4次方,之後一次類推知道2的0次方,再用相對應的次方乘以相對應的二進位數字就可以了,所以11100得到的十進位數字就是
  • 零基礎學Java之數據類型和運算符,第一講:進位及其轉換
    二進位,是計算技術中廣泛採用的一種數制,由德國數理哲學大師萊布尼茨於1679年發明。二進位數據是用0和1兩個數碼來表示的數。它的基數為2,進位規則是「逢二進一」。數字計算機只能識別和處理由『0』.『1』符號串組成的代碼。其運算模式正是二進位。