数制
數制也稱計數制,是用一組固定的符號和統一的規則來表示數值的方法。任何一個數制都包含如下基本概念:數碼、基數、數位、位數、位權和計數單位。不同數制間可以進行進制轉換。計算機中最常見的數制有二進制、八進制和十六進制數制,生活中最熟悉的則是十進制數制。當然,十進制數制在編寫代碼時,常用于表示數值大小。
以十進制數制為例,介紹數制的相關基本概念。
數碼指數制中用于表示基本數值大小的不同數字符號。十進制有 10 個數碼,分別為 0,1,2,3,4,5,6,7,8,9。
基數指數制所使用數碼的個數。十進制的基數為 10。
數位指一個數中數碼所占的位置。例如十進制整數 520,從右至左,0 的數位是個位、2的數位是十位,5 的數位是百位。
位數指的是數中數位的個數。例如十進制整數 520 有三個數位,所以位數為 3。
位權指的是數制中某一數位上的 1 所表示數值的大小(所處位置的權值)。例如,十進制整數 520,從右至左,0 的位權是 1,2 的位權是10,5 的位權是 100。
計數單位指的是數值中對位權的稱謂。對于十進制整數 520,從右至左,0 的位權是 1,計數單位是個,2 的位權是 10,計數單位是十,5 的位權是100,計數單位是百,后面還有千、萬、十萬、百萬、千萬、億、十億、百億、千億……,這些都是計數單位。有了計數單位,我們就可以將 520 讀作“五百二十”。計數單位與位權的區別在于,位權是對計算單位的量化,計數單位是對位權的表述。
生活中除了常用的十進制數制,也使用形形色色的進制。在新中國成立之前,重量單位一直采用的是半斤等于八兩的換算,以前從兩到斤,采用的是16 進制,16 兩為 1 斤,那時候半斤和八兩是同一個意思,所以有“半斤八兩”這一成語。新中國成立之后,為與國際接軌又考慮使用習慣,將一斤改為 10 兩,一公斤定為 1kg。時間上,使用 60 進制,每 60 秒為一分鐘,每 60 分鐘為 1 小時。從小時到天則使用 24 進制,每 24 小時為 1天。從天到星期,采用的是 7 進制,7 天為 1 星期,從月到年,采用的是12 進制,12 個月為 1 年,等等。
對于計算機而言,則使用二進制對數據進行表示,而不是人類使用的 10 進制。其理由主要有以下四點:
(1)電路簡單。實現二進制存儲和運算的邏輯電路比較簡單,容易使用開關電路(或邏輯電路)來實現。
(2)可靠性高。2 進制只有 0 和 1 兩個數碼,數據的傳送和處理都不容易出錯。用電路實現 2 進制運算時,電路可靠,抗干擾能力強。
(3)運算簡單。2進制的運算規則簡單,不論加法規則還是乘法規則,都比較簡單,從而簡化實現運算規則的電路邏輯,提高運算速度。相對而言,10進制的運算規則要復雜很多,例如九九乘法表就是10進制的乘法規則。
(4)邏輯性強。邏輯代數中的值只有“真”和“假”,使用2進制十分容易表示邏輯值并實現邏輯運算。
在書寫代碼時,C++ 中不同進制的數值表示方法如下:
| 二進制 | C++14 開始支持直接書寫二進制數,數值前加 0b 或 0B | uint8_t a = 0b00010001; uint8_t a = 0B00010001; |
| 八進制 | 數值前加零 | uint8_t a = 021; |
| 十進制 | 直接書寫 | uint8_t a = 17; |
| 十六進制 | 數值前加0x或0X | uint8_t a = 0x11; uint8_t a = 0X11; |
參考文獻
[1] 數制.百度百科
[2] 數位.百度百科
[3] 數制與編碼
[4] C++14.百度百科
總結
- 上一篇: Windows 中通过sh导入csv、t
- 下一篇: 电子数据检验专用计算机价格,GPCGPC