官术网_书友最值得收藏!

  • 編程與類型系統
  • (美)弗拉德·里斯庫迪亞
  • 440字
  • 2021-01-29 11:51:22

1.1.1 0和1

除了區分代碼和數據,我們還需要知道如何解釋一條數據。16位序列1100001010100011可以表示無符號16位整數49827,帶符號整數-15709,UTF-8編碼的字符'£',等等,如圖1.1所示。運行程序的硬件將所有數據均存儲為位序列,因此我們需要有另外一個層來為這些數據賦予意義。

圖1.1 可用不同的方式來解釋一個位序列

類型為數據賦予了意義,告訴軟件在給定上下文中如何解釋給定位序列,使其保留期望的意義。

類型還限制了一個變量可以接受的有效值的集合。一個帶符號的16位整數可以表示-32768~32767的任意整數,但不能表示其他數字。能夠限制允許值的范圍,就不允許在運行時出現無效值,從而避免出現各種錯誤,如圖1.2所示。將類型視為可取的值的集合,對于理解本書中討論的許多概念很重要。

圖1.2 這個位序列的類型是帶符號的16位整數。類型信息(帶符號的16位整數)告訴編譯器和運行時,這個位序列表示-3276832767之間的一個整數值,從而保證將其正確地解釋為-15709

在1.2節我們將看到,當為代碼添加屬性時,例如將一個值標記為const,或者將一個成員變量標記為private,系統將強制實施其他許多安全屬性。

主站蜘蛛池模板: 封丘县| 调兵山市| 会理县| 诸暨市| 阿巴嘎旗| 宝丰县| 福清市| 京山县| 左贡县| 达孜县| 双柏县| 石屏县| 广安市| 波密县| 疏附县| 修武县| 临海市| 通渭县| 江口县| 宁明县| 福州市| 三门峡市| 沂水县| 临猗县| 张家口市| 高要市| 璧山县| 文水县| 屯留县| 曲沃县| 大邑县| 朝阳区| 江源县| 夏津县| 阳山县| 本溪市| 神池县| 南雄市| 延边| 密山市| 建水县|