![]()
![]()
在派出所戶籍窗口待久了,總會被大家問到一些有趣的問題。
比如:“同志,為啥我家孩子身份證尾號是X,我全家都是數字啊?”,比如“警察叔叔,是不是因為我特別厲害?是X戰警”,又比如“我身份證后兩位是2X,每次報證件號都會被對象閨蜜笑(知道是無惡意的,自己也很想笑)”。
![]()
每當這個時候,我都要深吸一口氣,開啟硬核但有趣的科普。
今天我們就來聊聊,身份證號碼最后那個奇怪的 “X” ,它怎么讀?它到底是誰?它背后的秘密是什么?
![]()
對于它的發音,在我們生活中,似乎沒有人在意,“埃克斯”“叉”“西”……念什么的都有。
![]()
那么,身份證上的公民身份號碼,最后一位“Ⅹ”,哪個發音才是正確的?
“Ⅹ”表示的是羅馬數字“10”,讀作shí最為妥當。
![]()
它是羅馬數字的基本符號之一,代表數字10。關于“X”的起源,有一種說法是源于兩個“V”(代表5)的疊加,也有人認為它象征交叉的雙臂。
![]()
羅馬數字圖表
![]()
有人開玩笑說,身份證號碼帶“X”的朋友,可能是“天選之子”。但這個“X”一點也不神秘,全靠前17位“大哥”撐腰。
身份證的最后一位,其實是個“校驗碼”,通過身份證前17位數字推算出來的。
![]()
公民身份號碼結構丨國家標準《公民身份號碼》GB11643—1999
這套算法采用的是MOD 11-2(取模11)國家標準算法,通過加權求和、取余換算后,校驗碼字符值會在0到10之間。
![]()
問題來了,如果校驗碼算出是10,直接寫成“10”的話,這一位就占了兩個數字的位置,身份證號碼就變成19位了,這不符合國家標準規定的18位格式。
于是,?羅???馬???數???字???“???X???”???就???這???樣???水???靈???靈???地???出???現???了,被派來頂替數字10的位置。
溫馨提示:如果你暈公式,可以跳過這段……
身份證最后一位的算法采用的是 ISO 7064 《數據處理——校驗符系統》中給出的 MOD 11-2 校驗碼系統。這里的MOD 11-2表示模數是11,基數是2。也就是校驗公式(見下)中,需要將總數除以11(模數)并取余數,而每個位置上的加權因子是通過以2(基數)為底的幾何級數算出來的。
![]()
公民身份號碼校驗公式丨國家標準《公民身份號碼》GB11643—1999
身份號碼中的校驗碼位于最右邊,所以它位置序號i=1,對應的加權因子W1也等于1。按照公式,我們需要將身份證號碼中其他各個位置上的數字都乘以對應的因子,把它們加起來得到總數,再將總數除以11并取余數。如果這個余數加上校驗碼(乘1還是本身)以后,除以11的余數是1,那就說明這個號碼能夠滿足公式的校驗。
為了方便計算,國家標準中直接給出了校驗碼a1和余數的換算關系對應表:
![]()
國家標準《公民身份號碼》GB11643—1999
舉個例子:
![]()
校驗碼計算范例丨國家標準《公民身份號碼》GB11643—1999
來源:@果殼
![]()
國家費這么大勁,其實就是為了防錯。
因為你填身份證號碼時,可能出現各種錯誤,除了漏字、多字這種位數顯而易見的錯誤外,輸錯數字都不容易被發現。
![]()
但系統會悄悄把前17位重新算一遍,發現跟最后一位對不上,立馬報錯。甚至還可以識別出相鄰兩位填反、錯位等錯誤。
一個小小的校驗碼,就是身份證系統的“保安”。平時不吭聲,你一錯它立刻吹哨。
![]()
所以各位“X戰警”們,下次再有人問“你身份證怎么還有個叉啊?”
請挺起胸膛告訴他:“這不是叉,這是羅馬數字10!我是經過國家認證、數學算法加持的‘完美校驗碼選手’!”
畢竟,這串號碼可不只是冷冰冰的數字,它更是每一個獨一無二、閃閃發光的你。
專欄閱讀
![]()
來源丨江蘇警方編輯部 云南警方
編輯丨王琪珺 趙欣彤
審核丨張可奈
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.