為什麼人類的運算最終統一為十進位?具體的歷史發展進程已經很難準確地進行考證,但大概率一定是因為人有10根手指。
比如我國古代就曾使用過十六進位,但最終還是被歷史所淘汰。直到萊布尼茨提出二進位算法,人們才發現越簡單就越優化。
後來,隨著計算機的發展,人們終於意識到二進位算法的速度遠遠優於十進位。計算機在計算的時候是這樣操作的,人們輸入一個十進位數據,計算機將十進位數據轉化為二進位數據,再對這個二進位數據進行運算,得出一個二進位數據的結果,最後再把二進位數據的結果轉化為十進位數據的結果。看上去好像更複雜了,但對於大數據的複雜運算,這樣操作的速度是要遠遠高於直接用十進位數據來運算的,只是計算機為了適應人類十進位的習慣,才多轉化了兩次而已。
其實,我國古代很早就有二進位的意識。太極八卦圖中,太極生兩儀、兩儀生四象、四象生八卦的思想就是二進位的完美體現。用來表示乾、坤、震、巽、坎、艮、離、兌這八卦的長線和短線,就是二進位中的0和1。一黑一白、一陰一陽、一長一短、一0一1。
什麼是二進位?
簡單來說,我們使用的十進位共有0、1、2、3、4、5、6、7、8、9十個數字,運算滿足逢十進一。類似地,二進位就只有0和1這兩個數字,運算滿足逢二進一。
二進位和十進位如何轉化?
1.二進位轉化為十進位
二進位數
a1a2…an
=a1*2^(n-1)+a2*2^(n-2)+…+an*2^0
這裡a1、a2、…、an代表0或1
例如,二進位
1100011
=1*2^6+1*2^5+0*2^4+0*2^3+0*2^2+1*2^1+1*2^0
=2^6+2^5+2^1+2^0
=64+32+2+1
=99
2.十進位如何轉化為二進位?
這個問題要複雜一點,直接舉例說明
就以十進位99為例,具體操作去下
99÷2=49…1
49÷2=24…1
24÷2=12…0
12÷2=6…0
6÷2=3…0
3÷2=1…1
1÷2=0…1
直到最後商0為止,然後將餘數依次從後面往前面寫出來即可。
99轉化為二進位1100011
換一個數字328
328÷2=164…0
164÷2=82…0
82÷2=41…0
41÷2=20…1
20÷2=10…0
10÷2=5…0
5÷2=2…1
2÷2=1…0
1÷2=0…1
328轉化為二進位101001000
最後來玩一個我很小的時候玩的遊戲
第一組:1,3,5,7,9,11,13,15
第二組:2,3,6,7,10,11,14,15
第三組:4,5,6,7,12,13,14,15
第四組:8,9,10,11,12,13,14,15
你在1—15這15個數字中任選一個數字,告訴我這個數字分別出現在第幾組,我就能很快告訴你這個數字是幾。
例如數字13分別出現在第一組、第三組和第四組。你只需要記住第一組代表2^0=1、第二組代表2^1=2、第三組代表2^2=4、第一組代表2^3=8。
分別出現在第一組、第三組和第四組,這個數字就是1+4+8=13。這個小遊戲的思想就是二進位的思想,具體道理就留給大家去思考一下。