打孔卡
簡(jiǎn)介
1801年,法國(guó)人約瑟夫·瑪麗·雅卡爾發(fā)明了打孔卡用在控制織布機(jī)織出的圖案。 1880年代,美國(guó)人口調(diào)查局職員霍列瑞斯發(fā)明了用于人口普查數(shù)據(jù)的穿孔卡片及機(jī)器,并用于1890年美國(guó)人口普查,僅6周就完成了統(tǒng)計(jì)。 而此前1880年美國(guó)人口普查的數(shù)據(jù)全靠手工處理,歷時(shí)7年才得出最終結(jié)果。 霍列瑞斯創(chuàng)建的公司,發(fā)展為今日的IBM。 1890年代至20世紀(jì)初,穿孔卡廣泛運(yùn)用在商業(yè)和相關(guān)文書。20世紀(jì)期間,打孔卡應(yīng)用在單位記錄機(jī)作為輸入端、處理和計(jì)算機(jī)程序。 早期的數(shù)字電腦運(yùn)用打孔機(jī)已輸入信息的打孔卡當(dāng)做計(jì)算機(jī)程序和數(shù)據(jù)的主要輸入媒介。 另外,一些投票機(jī)也運(yùn)用打孔卡。
1928年,IBM發(fā)明的80列、矩形孔卡片,成為事實(shí)上的標(biāo)準(zhǔn)。 其工作原理如下:編號(hào)為0至9,總計(jì)10行;以及一塊區(qū)域,用于第11、第12行(注意,沒(méi)有編號(hào)為第10的行)。 每列的穿孔組合用于表示單個(gè)字符:
數(shù)字通過(guò)在行0至行9直接打1個(gè)孔來(lái)表示。
空格符的表示,不需要打孔。
字母用2個(gè)孔表示:一個(gè)孔在第11、第12、第0行;另一個(gè)孔在第1至第9行。字母表被依次分為由9個(gè)字母組成的區(qū)("zones"),每個(gè)區(qū)的字母依次在第1至第9行打孔。每個(gè)區(qū)分別在第11、第12、第0行打孔。第3區(qū)第1個(gè)字符保留未使用。
一些特殊字符使用了額外的單孔表示,或者雙孔表示。
大多數(shù)特殊字符(如標(biāo)點(diǎn)符號(hào)等)用3孔表示:第8行被穿孔;第0、第11、第12行有1個(gè)穿孔;第1到第7行有1個(gè)穿孔。第9行保留未使用。
總計(jì)表示了67個(gè)字符。
進(jìn)入到數(shù)字計(jì)算機(jī)時(shí)代,上述穿孔卡片字符表示方式發(fā)展為6比特的字符編碼:用4比特表示第0行至第9行的哪一行被穿孔;用2比特表示第11、第12行的哪一行被穿孔。 這可以表示所有的單孔或者雙孔的字符表示,這被稱作“二進(jìn)制編碼的十進(jìn)制交換碼”(Binary Coded Decimal Information Code,BCDIC, BCD碼)。 1964年,IBM在BCDIC上又增加2個(gè)比特,形成了8比特的“擴(kuò)充的二進(jìn)制編碼的十進(jìn)制交換碼”(Extended Binary Coded Decimal Information Code,EBCDIC),首先用于IBM System/360計(jì)算機(jī)。 EBCDIC向后兼容BCDIC,擴(kuò)充了小寫字母,以及從ASCII碼借鑒來(lái)的一些控制字符(穿孔卡片實(shí)際上不需要,也不表示控制字符)。因?yàn)镋BCDIC脫胎于穿孔卡,所以其字母表是以9個(gè)為一組,彼此不連續(xù)編碼表示的,這給程序員帶來(lái)了很大不便。例如,字母“I”編碼為0xC9;而字母“J”編碼為0xD1,二者中間有8個(gè)碼位間斷。 EBCDIC一直用到目前的IBM System/390計(jì)算機(jī)系統(tǒng)。
參考文獻(xiàn)
本條目部分或全部?jī)?nèi)容出自以GFDL授權(quán)發(fā)布的《自由在線電腦詞典》(FOLDOC)。
參見(jiàn)
Card image
Computer programming in the punch card era
Key punch
計(jì)算機(jī)硬件歷史
List of books on the history of computing#Punched cards, Unit record equipment
Paper data storage
Unit record equipment
Voting machine
免責(zé)聲明:以上內(nèi)容版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。感謝每一位辛勤著寫的作者,感謝每一位的分享。
相關(guān)資料
展開(kāi)- 有價(jià)值
- 一般般
- 沒(méi)價(jià)值
{{item.userName}} 舉報(bào)
{{item.time}} {{item.replyListShow ? '收起' : '展開(kāi)'}}評(píng)論 {{curReplyId == item.id ? '取消回復(fù)' : '回復(fù)'}}
{{_reply.userName}} 舉報(bào)
{{_reply.time}}